@rs-pk/asset-management 1.0.28 → 1.0.29
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/rs-pk-asset-management.umd.js +106 -55
- package/bundles/rs-pk-asset-management.umd.js.map +1 -1
- package/bundles/rs-pk-asset-management.umd.min.js +2 -2
- package/bundles/rs-pk-asset-management.umd.min.js.map +1 -1
- package/esm2015/lib/components/partial/asset-item/asset-item.component.js +6 -3
- package/esm2015/lib/components/partial/asset-list/asset-list.component.js +14 -6
- package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +2 -2
- package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +5 -2
- package/esm2015/lib/components/partial/file-list/file-list.component.js +1 -1
- package/esm2015/lib/components/partial/node-details/node-details.component.js +13 -4
- package/esm2015/lib/components/partial/node-tree/node-tree.component.js +36 -34
- package/esm2015/lib/components/partial/search-box/search-box.component.js +10 -5
- package/esm2015/lib/components/ui/modal/modal.component.js +1 -1
- package/esm2015/lib/datasources/node-tree.datasource.js +4 -3
- package/esm2015/lib/services/asset.service.js +7 -5
- package/esm2015/lib/services/node-tree.service.js +16 -12
- package/esm5/lib/components/partial/asset-item/asset-item.component.js +6 -3
- package/esm5/lib/components/partial/asset-list/asset-list.component.js +14 -6
- package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +2 -2
- package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +5 -2
- package/esm5/lib/components/partial/file-list/file-list.component.js +1 -1
- package/esm5/lib/components/partial/node-details/node-details.component.js +13 -4
- package/esm5/lib/components/partial/node-tree/node-tree.component.js +48 -37
- package/esm5/lib/components/partial/search-box/search-box.component.js +10 -5
- package/esm5/lib/components/ui/modal/modal.component.js +1 -1
- package/esm5/lib/datasources/node-tree.datasource.js +5 -3
- package/esm5/lib/services/asset.service.js +9 -5
- package/esm5/lib/services/node-tree.service.js +17 -11
- package/fesm2015/rs-pk-asset-management.js +89 -52
- package/fesm2015/rs-pk-asset-management.js.map +1 -1
- package/fesm5/rs-pk-asset-management.js +105 -54
- package/fesm5/rs-pk-asset-management.js.map +1 -1
- package/lib/components/partial/asset-item/asset-item.component.d.ts +1 -0
- package/lib/components/partial/asset-list/asset-list.component.d.ts +1 -0
- package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +1 -0
- package/lib/components/partial/node-details/node-details.component.d.ts +1 -0
- package/lib/components/partial/node-tree/node-tree.component.d.ts +7 -7
- package/lib/datasources/node-tree.datasource.d.ts +1 -1
- package/lib/services/asset.service.d.ts +1 -1
- package/lib/services/node-tree.service.d.ts +6 -6
- package/package.json +3 -4
- package/rs-pk-asset-management.metadata.json +1 -1
|
@@ -359,8 +359,14 @@ var NodeDetailsComponent = /** @class */ (function () {
|
|
|
359
359
|
*/
|
|
360
360
|
function (_a) {
|
|
361
361
|
var _b = tslib_1.__read(_a, 2), foldersRes = _b[0], assetsRes = _b[1];
|
|
362
|
+
/** @type {?} */
|
|
363
|
+
var pagination = assetsRes && assetsRes.Meta || {};
|
|
364
|
+
/** @type {?} */
|
|
365
|
+
var assets = assetsRes && assetsRes.Data && assetsRes.Data.Children || [];
|
|
366
|
+
/** @type {?} */
|
|
367
|
+
var totalFile = assetsRes && assetsRes.Data && assetsRes.Data.TotalFile || 0;
|
|
362
368
|
_this.setFolderList(foldersRes);
|
|
363
|
-
_this.assetService.setAssetList(
|
|
369
|
+
_this.assetService.setAssetList(assets, pagination, totalFile);
|
|
364
370
|
if (foldersRes.Data && foldersRes.Data.Children) {
|
|
365
371
|
foldersRes.Data.Children.forEach((/**
|
|
366
372
|
* @param {?} node
|
|
@@ -460,8 +466,8 @@ var NodeDetailsComponent = /** @class */ (function () {
|
|
|
460
466
|
NodeDetailsComponent.decorators = [
|
|
461
467
|
{ type: Component, args: [{
|
|
462
468
|
selector: 'lib-node-details',
|
|
463
|
-
template: "<div class=\"node-details custom-scrollbar\">\n <div class=\"node-header\">\n <mat-progress-bar [style.visibility]=\"(loading$ | async) ? 'visible' : 'hidden'\" mode=\"indeterminate\">\n </mat-progress-bar>\n <div class=\"node-header-content\">\n <div class=\"node-header-content__left\">\n <H5 class=\"node-header-content__left--title\">\n <ng-container *ngIf=\"assetService?.keyword\">\n Search results for <span>{{ assetService?.keyword }}</span> in\n </ng-container>\n {{ currentFolder?.OriginalFileName }}\n </H5>\n <p *ngIf=\"!noResults\" class=\"node-header-content__left--subtitle\">\n {{ assetService?.folderTotal }}\n {{ assetService?.folderTotal > 1 ? 'folders' : 'folder' }},\n {{ assetService?.fileTotal }}\n {{ assetService?.fileTotal > 1 ? 'files': 'file' }}\n </p>\n </div>\n <div class=\"node-header-content__right\">\n <div class=\"button-wrapper\">\n <button mat-raised-button [disabled]=\"!selectedAssets?.length || !hasArchivePermission\" (click)=\"deleteAssets()\" color=\"warn\">\n <span>{{selectedAssets?.length > 1 ? 'Delete assets' : 'Delete asset'}}</span>\n <span *ngIf=\"selectedAssets?.length\" class=\"count\">({{ selectedAssets.length }})</span>\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"openUploadDialog()\" [disabled]=\"!currentFolder?.AssetId || !hasModifyPermission\">\n Upload asset\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"addFolder()\" [disabled]=\"!currentFolder?.AssetId || !hasModifyPermission\">\n Add folder\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"node-body\">\n <lib-search-not-found *ngIf=\"noResults; else contentAsset\"></lib-search-not-found>\n <ng-template #contentAsset>\n <lib-folder-list\n class=\"node-body__section\"\n [folders]=\"currentFolder?.Children\"\n [pagination]=\"folderPagination\"\n [hasModifyPermission]=\"hasModifyPermission\"\n [hasAccessPermission]=\"hasAccessPermission\"\n [hasArchivePermission]=\"hasArchivePermission\"\n (onPageChange)=\"onFolderPageChange($event)\"\n ></lib-folder-list>\n <lib-asset-list\n [assets]=\"assets\"\n [hasModifyPermission]=\"hasModifyPermission\"\n [hasAccessPermission]=\"hasAccessPermission\"\n [hasArchivePermission]=\"hasArchivePermission\"\n ></lib-asset-list>\n </ng-template>\n </div>\n</div>",
|
|
464
|
-
styles: [":host::ng-deep .node-details{max-height:100%;overflow-y:auto}:host::ng-deep .node-details .node-header{position
|
|
469
|
+
template: "<div class=\"node-details custom-scrollbar\">\n <div class=\"node-header\">\n <mat-progress-bar [style.visibility]=\"(loading$ | async) ? 'visible' : 'hidden'\" mode=\"indeterminate\">\n </mat-progress-bar>\n <div class=\"node-header-content\">\n <div class=\"node-header-content__left\">\n <H5 class=\"node-header-content__left--title\">\n <ng-container *ngIf=\"assetService?.keyword\">\n Search results for <span>{{ assetService?.keyword }}</span> in\n </ng-container>\n {{ currentFolder?.OriginalFileName }}\n </H5>\n <p *ngIf=\"!noResults\" class=\"node-header-content__left--subtitle\">\n {{ assetService?.folderTotal }}\n {{ assetService?.folderTotal > 1 ? 'folders' : 'folder' }},\n {{ assetService?.fileTotal }}\n {{ assetService?.fileTotal > 1 ? 'files': 'file' }}\n </p>\n </div>\n <div class=\"node-header-content__right\">\n <div class=\"button-wrapper\">\n <button mat-raised-button [disabled]=\"!selectedAssets?.length || !hasArchivePermission\" (click)=\"deleteAssets()\" color=\"warn\">\n <span>{{selectedAssets?.length > 1 ? 'Delete assets' : 'Delete asset'}}</span>\n <span *ngIf=\"selectedAssets?.length\" class=\"count\">({{ selectedAssets.length }})</span>\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"openUploadDialog()\" [disabled]=\"!currentFolder?.AssetId || !hasModifyPermission\">\n Upload asset\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"addFolder()\" [disabled]=\"!currentFolder?.AssetId || !hasModifyPermission\">\n Add folder\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"node-body\">\n <lib-search-not-found *ngIf=\"noResults; else contentAsset\"></lib-search-not-found>\n <ng-template #contentAsset>\n <lib-folder-list\n class=\"node-body__section\"\n [folders]=\"currentFolder?.Children\"\n [pagination]=\"folderPagination\"\n [hasModifyPermission]=\"hasModifyPermission\"\n [hasAccessPermission]=\"hasAccessPermission\"\n [hasArchivePermission]=\"hasArchivePermission\"\n (onPageChange)=\"onFolderPageChange($event)\"\n ></lib-folder-list>\n <lib-asset-list\n [assets]=\"assets\"\n [isDialog]=\"isDialog\"\n [hasModifyPermission]=\"hasModifyPermission\"\n [hasAccessPermission]=\"hasAccessPermission\"\n [hasArchivePermission]=\"hasArchivePermission\"\n ></lib-asset-list>\n </ng-template>\n </div>\n</div>",
|
|
470
|
+
styles: [":host::ng-deep .node-details{max-height:100%;overflow-y:auto}:host::ng-deep .node-details .node-header{position:sticky;top:0;background-color:#fff;z-index:20}:host::ng-deep .node-details .node-header-content{padding:10px 20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}:host::ng-deep .node-details .node-header-content__left--title{margin-bottom:5px}:host::ng-deep .node-details .node-header-content__left--title span{color:#fb3458}:host::ng-deep .node-details .node-header-content__left--subtitle{margin:0;color:#979797;font-size:14px}:host::ng-deep .node-details .node-header-content__right{flex:1}:host::ng-deep .node-details .node-header-content__right .button-wrapper{display:flex;gap:15px;justify-content:flex-end}:host::ng-deep .node-details .node-header-content__right .button-wrapper .count{margin-left:3px}:host::ng-deep .node-details .node-body{padding:0 20px}:host::ng-deep .node-details .node-body__section{display:block;margin-bottom:15px}"]
|
|
465
471
|
}] }
|
|
466
472
|
];
|
|
467
473
|
/** @nocollapse */
|
|
@@ -473,6 +479,7 @@ var NodeDetailsComponent = /** @class */ (function () {
|
|
|
473
479
|
{ type: ChangeDetectorRef }
|
|
474
480
|
]; };
|
|
475
481
|
NodeDetailsComponent.propDecorators = {
|
|
482
|
+
isDialog: [{ type: Input }],
|
|
476
483
|
hasModifyPermission: [{ type: Input }],
|
|
477
484
|
hasAccessPermission: [{ type: Input }],
|
|
478
485
|
hasArchivePermission: [{ type: Input }]
|
|
@@ -481,6 +488,8 @@ var NodeDetailsComponent = /** @class */ (function () {
|
|
|
481
488
|
}());
|
|
482
489
|
export { NodeDetailsComponent };
|
|
483
490
|
if (false) {
|
|
491
|
+
/** @type {?} */
|
|
492
|
+
NodeDetailsComponent.prototype.isDialog;
|
|
484
493
|
/** @type {?} */
|
|
485
494
|
NodeDetailsComponent.prototype.hasModifyPermission;
|
|
486
495
|
/** @type {?} */
|
|
@@ -522,4 +531,4 @@ if (false) {
|
|
|
522
531
|
*/
|
|
523
532
|
NodeDetailsComponent.prototype.changeDetectorRef;
|
|
524
533
|
}
|
|
525
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9ub2RlLWRldGFpbHMvbm9kZS1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUdqRjtJQVVFLDhCQUNTLE1BQWlCLEVBQ2pCLFlBQTBCLEVBQ3pCLGVBQWdDLEVBQ2hDLEdB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QUFDLHFCQUFxQjtZQUN2QyxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ2hCLElBQUksRUFBRSxXQUFXLENBQUMsbUJBQW1CO1lBQ3JDLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7O2dCQXRSRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsd2xGQUE0Qzs7aUJBRTdDOzs7O2dCQXBCUSxTQUFTO2dCQVFULFlBQVk7Z0JBQ1osZUFBZTtnQkFIZixzQkFBc0I7Z0JBUHRCLGlCQUFpQjs7O3NDQXVCdkIsS0FBSztzQ0FDTCxLQUFLO3VDQUNMLEtBQUs7O0lBK1FSLDJCQUFDO0NBQUEsQUF2UkQsSUF1UkM7U0FsUlksb0JBQW9COzs7SUFDL0IsbURBQThDOztJQUM5QyxtREFBOEM7O0lBQzlDLG9EQUErQzs7Ozs7SUFZL0MsNENBQTJDOztJQUMzQyxnREFBbUM7O0lBQ25DLDhDQUE4Qzs7SUFDOUMsd0NBQXVFOztJQUN2RSw2Q0FBc0M7O0lBQ3RDLHNDQUE0Qjs7SUFkMUIsc0NBQXdCOztJQUN4Qiw0Q0FBaUM7Ozs7O0lBQ2pDLCtDQUF3Qzs7Ozs7SUFDeEMsbUNBQW1DOzs7OztJQUNuQyxpREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb21iaW5lTGF0ZXN0JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL1N1YmplY3QnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBc3NldE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXNzZXQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0TW9kZWwsIEZvbGRlclRyZWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBc3NldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hc3NldC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVUcmVlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vZGUtdHJlZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBzZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSc7XG5pbXBvcnQgeyBBZGRGb2xkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtZm9sZGVyLWRpYWxvZy9hZGQtZm9sZGVyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVsZXRlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZGVsZXRlLWRpYWxvZy9kZWxldGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGxvYWREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5vZGUtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub2RlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub2RlLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTm9kZURldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGhhc01vZGlmeVBlcm1pc3Npb24/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaGFzQWNjZXNzUGVybWlzc2lvbj86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBoYXNBcmNoaXZlUGVybWlzc2lvbj86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwdWJsaWMgYXNzZXRTZXJ2aWNlOiBBc3NldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub2RlVHJlZVNlcnZpY2U6IE5vZGVUcmVlU2VydmljZSxcbiAgICBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLmJpbmRTdWJzY3JpYmVyKCk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBmb2xkZXJQYWdpbmF0aW9uOiBQYWdlRXZlbnQ7XG4gIHB1YmxpYyBzZWxlY3RlZEFzc2V0czogQXJyYXk8QXNzZXRNb2RlbD4gPSBbXTtcbiAgcHVibGljIGxvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIGN1cnJlbnRGb2xkZXI6IEZvbGRlclRyZWVNb2RlbDtcbiAgcHVibGljIGFzc2V0czogQXNzZXRNb2RlbFtdO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlXG4gICAgICAuZ2V0Rm9sZGVyTGlzdCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoZm9sZGVycykgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRGb2xkZXIgPSBmb2xkZXJzO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlXG4gICAgICAuZ2V0QXNzZXRMaXN0KClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKChhc3NldHMpID0+IHtcbiAgICAgICAgdGhpcy5hc3NldHMgPSBhc3NldHM7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRTdWJzY3JpYmVyKCkge1xuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLmdsb2JhbExvYWRpbmcpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IG9mKHJlcykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChnbG9iYWxMb2FkaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyQubmV4dChnbG9iYWxMb2FkaW5nKTtcbiAgICAgIH0pO1xuXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUuc2VsZWN0ZWRBc3NldHMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRBc3NldHMpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkQXNzZXRzKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEFzc2V0cyA9IHNlbGVjdGVkQXNzZXRzO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLmN1cnJlbnRGb2xkZXJJZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gb2YocmVzKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGN1cnJlbnRGb2xkZXJJZCkgPT4ge1xuICAgICAgICBpZiAoY3VycmVudEZvbGRlcklkKSB7XG4gICAgICAgICAgdGhpcy5hc3NldFNlcnZpY2UucGFnZUluZGV4ID0gMDtcbiAgICAgICAgICB0aGlzLmZldGNoTm9kZURldGFpbHMoY3VycmVudEZvbGRlcklkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5yZWxvYWRDdXJyZW50Rm9sZGVyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiBvZihyZXMpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50Rm9sZGVyKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmV0Y2hGb2xkZXIodGhpcy5jdXJyZW50Rm9sZGVyLkFzc2V0SWQpO1xuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5yZWxvYWRDdXJyZW50Tm9kZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gb2YocmVzKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudEZvbGRlcikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFzc2V0U2VydmljZS5wYWdlSW5kZXggPSAwO1xuICAgICAgICB0aGlzLmZldGNoTm9kZURldGFpbHModGhpcy5jdXJyZW50Rm9sZGVyLkFzc2V0SWQpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlblVwbG9hZERpYWxvZygpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVwbG9hZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBjdXJyZW50QXNzZXRJZDogdGhpcy5jdXJyZW50Rm9sZGVyLkFzc2V0SWQsXG4gICAgICAgIGZpbGVUeXBlOiB0aGlzLmFzc2V0U2VydmljZS5kaWFsb2dDb25maWcuYWxsb3dlZFR5cGUsXG4gICAgICAgIG1heFNpemU6IHRoaXMuYXNzZXRTZXJ2aWNlLm1heFNpemVcbiAgICAgIH0sXG4gICAgICBwYW5lbENsYXNzOiAnbGliLWRpYWxvZy0tbWVkaXVtJyxcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9BU1NFVFMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfRk9MREVSLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZEZvbGRlcigpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZEZvbGRlckRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBjdXJyZW50QXNzZXRJZDogdGhpcy5jdXJyZW50Rm9sZGVyLkFzc2V0SWQsXG4gICAgICB9LFxuICAgICAgcGFuZWxDbGFzczogJ2xpYi1kaWFsb2ctLXNtYWxsJyxcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9GT0xERVIsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlQXNzZXRzKCkge1xuICAgIGNvbnN0IGlkcyA9IHRoaXMuc2VsZWN0ZWRBc3NldHMubWFwKChhc3NldCkgPT4gYXNzZXQuQXNzZXRJZCk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEZWxldGVEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHlwZTogJ2ZpbGVzJyxcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdsaWItZGlhbG9nLS1zbWFsbCcsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0FTU0VUUyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9GT0xERVIsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0FTU0VUUyxcbiAgICAgICAgICBwYXlsb2FkOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoRm9sZGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXG4gICAgICBwYXlsb2FkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBwYWdlSW5kZXgsIHBhZ2VTaXplIH0gPSB0aGlzLmdldEZvbGRlclBhZ2VQYWdpbmF0aW9uKCk7XG5cbiAgICB0aGlzLmFzc2V0U2VydmljZVxuICAgICAgLmdldENoaWxkcmVuRm9sZGVycyh7IGFzc2V0SWQ6IGlkLCBwYWdlSW5kZXgsIHBhZ2VTaXplIH0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgRGF0YSB9ID0gcmVzO1xuICAgICAgICBjb25zdCB7IENoaWxkcmVuIH0gPSBEYXRhO1xuICAgICAgICB0aGlzLnNldEZvbGRlckxpc3QocmVzKTtcblxuICAgICAgICBpZiAoQ2hpbGRyZW4pIHtcbiAgICAgICAgICBDaGlsZHJlbi5mb3JFYWNoKChub2RlKSA9PiB0aGlzLm5vZGVUcmVlU2VydmljZS5hZGROb2RlKG5vZGUsIHRoaXMuY3VycmVudEZvbGRlci5Bc3NldElkKSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9HTE9CQUxfTE9BRElORyxcbiAgICAgICAgICBwYXlsb2FkOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9sZGVyTGlzdChyZXMpIHtcbiAgICBjb25zdCB7IERhdGEsIE1ldGEgfSA9IHJlcztcbiAgICBjb25zdCB7IFRvdGFsRm9sZGVyIH0gPSBEYXRhO1xuICAgIGNvbnN0IHsgUGFnZUluZGV4LCBQYWdlU2l6ZSB9ID0gTWV0YTtcblxuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnNldEZvbGRlckxpc3QoRGF0YSwgeyBUb3RhbDogVG90YWxGb2xkZXIsIFBhZ2VJbmRleCwgUGFnZVNpemUgfSk7XG4gICAgdGhpcy5zZXRGb2xkZXJQYWdpbmF0aW9uKHsgbGVuZ3RoOiBUb3RhbEZvbGRlciwgcGFnZUluZGV4OiBQYWdlSW5kZXgsIHBhZ2VTaXplOiBQYWdlU2l6ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hOb2RlRGV0YWlscyhpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX0dMT0JBTF9MT0FESU5HLFxuICAgICAgcGF5bG9hZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCB7IHBhZ2VJbmRleCwgcGFnZVNpemUgfSA9IHRoaXMuZ2V0Rm9sZGVyUGFnZVBhZ2luYXRpb24oKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hc3NldFNlcnZpY2UuZ2V0Q2hpbGRyZW5Gb2xkZXJzKHsgYXNzZXRJZDogaWQsIHBhZ2VJbmRleCwgcGFnZVNpemUgfSksXG4gICAgICB0aGlzLmFzc2V0U2VydmljZS5nZXRDaGlsZHJlbkFzc2V0cyh7XG4gICAgICAgIGFzc2V0SWQ6IGlkLFxuICAgICAgfSksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKChbZm9sZGVyc1JlcywgYXNzZXRzUmVzXSkgPT4ge1xuICAgICAgICB0aGlzLnNldEZvbGRlckxpc3QoZm9sZGVyc1Jlcyk7XG4gICAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnNldEFzc2V0TGlzdChhc3NldHNSZXMuRGF0YS5DaGlsZHJlbiwgYXNzZXRzUmVzLk1ldGEpO1xuICAgICAgICBpZiAoZm9sZGVyc1Jlcy5EYXRhICYmIGZvbGRlcnNSZXMuRGF0YS5DaGlsZHJlbikge1xuICAgICAgICAgIGZvbGRlcnNSZXMuRGF0YS5DaGlsZHJlbi5mb3JFYWNoKChub2RlKSA9PlxuICAgICAgICAgICAgdGhpcy5ub2RlVHJlZVNlcnZpY2UuYWRkTm9kZShub2RlLCB0aGlzLmN1cnJlbnRGb2xkZXIuQXNzZXRJZClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9sZGVyUGFnZVBhZ2luYXRpb24oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VJbmRleDogdGhpcy5hc3NldFNlcnZpY2UucGFnZUZvbGRlckluZGV4LFxuICAgICAgcGFnZVNpemU6IHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VGb2xkZXJTaXplLFxuICAgICAgbGVuZ3RoOiB0aGlzLmFzc2V0U2VydmljZS5mb2xkZXJUb3RhbCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG9uRm9sZGVyUGFnZUNoYW5nZShldmVudDogUGFnZUV2ZW50KSB7XG4gICAgdGhpcy5hc3NldFNlcnZpY2UucGFnZUZvbGRlckluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VGb2xkZXJTaXplID0gZXZlbnQucGFnZVNpemU7XG4gICAgdGhpcy5mZXRjaEZvbGRlcih0aGlzLmN1cnJlbnRGb2xkZXIuQXNzZXRJZCk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvbGRlclBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnZUV2ZW50KSB7XG4gICAgaWYgKCFwYWdpbmF0aW9uKSByZXR1cm47XG4gICAgY29uc3QgeyBsZW5ndGgsIHBhZ2VJbmRleCwgcGFnZVNpemUgfSA9IHBhZ2luYXRpb247XG5cbiAgICB0aGlzLmZvbGRlclBhZ2luYXRpb24gPSB7XG4gICAgICBwYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZSxcbiAgICAgIGxlbmd0aFxuICAgIH07XG4gIH1cblxuICBnZXQgbm9SZXN1bHRzKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmFzc2V0U2VydmljZS5rZXl3b3JkICYmXG4gICAgICAhdGhpcy5jdXJyZW50Rm9sZGVyLkNoaWxkcmVuLmxlbmd0aCAmJlxuICAgICAgIXRoaXMuYXNzZXRzLmxlbmd0aFxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSUQsXG4gICAgICBwYXlsb2FkOiBudWxsLFxuICAgIH0pO1xuICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9TRUxFQ1RFRF9BU1NFVFMsXG4gICAgICBwYXlsb2FkOiBbXSxcbiAgICB9KTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufSJdfQ==
|
|
534
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9ub2RlLWRldGFpbHMvbm9kZS1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUdqRjtJQVdFLDhCQUNTLE1BQWlCLEVBQ2pCLFlBQTBCLEVBQ3pCLGVBQWdDLEVBQ2hDLEdBQTJCLEVBQzNCLGlCQUFvQztRQUpyQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVHJDLHdCQUFtQixHQUFhLElBQUksQ0FBQztRQUNyQyx3QkFBbUIsR0FBYSxJQUFJLENBQUM7UUFDckMseUJBQW9CLEdBQWEsSUFBSSxDQUFDO1FBWXZDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVwQyxtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFDdkMsYUFBUSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU5yRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7OztJQVNELHVDQUFROzs7SUFBUjtRQUFBLGlCQWVDO1FBZEMsSUFBSSxDQUFDLFlBQVk7YUFDZCxhQUFhLEVBQUU7YUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsQyxTQUFTOzs7O1FBQUMsVUFBQyxPQUFPO1lBQ2pCLEtBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1lBQzdCLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEVBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxZQUFZO2FBQ2QsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUzs7OztRQUFDLFVBQUMsTUFBTTtZQUNoQixLQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixLQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7OztJQUVPLDZDQUFjOzs7O0lBQXRCO1FBQUEsaUJBc0RDO1FBckRDLE1BQU07Ozs7UUFBQyxVQUFDLEtBQUssSUFBSyxPQUFBLEtBQUssQ0FBQyxhQUFhLEVBQW5CLENBQW1CLEVBQUM7YUFDbkMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLFNBQVM7Ozs7UUFBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBUCxDQUFPLEVBQUMsQ0FDNUI7YUFDQSxTQUFTOzs7O1FBQUMsVUFBQyxhQUFhO1lBQ3ZCLEtBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsRUFBQyxDQUFDO1FBRUwsTUFBTTs7OztRQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLGNBQWMsRUFBcEIsQ0FBb0IsRUFBQzthQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsQyxTQUFTOzs7O1FBQUMsVUFBQyxjQUFjO1lBQ3hCLElBQUksY0FBYyxFQUFFO2dCQUNsQixLQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQzthQUN0QztRQUNILENBQUMsRUFBQyxDQUFDO1FBRUwsTUFBTTs7OztRQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLGVBQWUsRUFBckIsQ0FBcUIsRUFBQzthQUNyQyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDNUIsU0FBUzs7OztRQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFQLENBQU8sRUFBQyxDQUM1QjthQUNBLFNBQVM7Ozs7UUFBQyxVQUFDLGVBQWU7WUFDekIsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLEtBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFFTCxNQUFNOzs7O1FBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsbUJBQW1CLEVBQXpCLENBQXlCLEVBQUM7YUFDekMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLFNBQVM7Ozs7UUFBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBUCxDQUFPLEVBQUMsQ0FDNUI7YUFDQSxTQUFTOzs7UUFBQztZQUNULElBQUksQ0FBQyxLQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN2QixPQUFPO2FBQ1I7WUFDRCxLQUFJLENBQUMsV0FBVyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxFQUFDLENBQUM7UUFFTCxNQUFNOzs7O1FBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsaUJBQWlCLEVBQXZCLENBQXVCLEVBQUM7YUFDdkMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLFNBQVM7Ozs7UUFBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBUCxDQUFPLEVBQUMsQ0FDNUI7YUFDQSxTQUFTOzs7UUFBQztZQUNULElBQUksQ0FBQyxLQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN2QixPQUFPO2FBQ1I7WUFDRCxLQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDaEMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7O0lBRU0sK0NBQWdCOzs7SUFBdkI7UUFBQSxpQkFvQkM7O1lBbkJPLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN4RCxJQUFJLEVBQUU7Z0JBQ0osY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztnQkFDMUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFdBQVc7Z0JBQ3BELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87YUFDbkM7WUFDRCxVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDLENBQUM7UUFFRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsR0FBRztZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7aUJBQ3hDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsd0NBQVM7OztJQUFUO1FBQUEsaUJBZUM7O1lBZE8sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzNELElBQUksRUFBRTtnQkFDSixjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO2FBQzNDO1lBQ0QsVUFBVSxFQUFFLG1CQUFtQjtTQUNoQyxDQUFDO1FBRUYsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFDLEdBQUc7WUFDcEMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsS0FBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7b0JBQ2hCLElBQUksRUFBRSxXQUFXLENBQUMscUJBQXFCO2lCQUN4QyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELDJDQUFZOzs7SUFBWjtRQUFBLGlCQXlCQzs7WUF4Qk8sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRzs7OztRQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLE9BQU8sRUFBYixDQUFhLEVBQUM7O1lBQ3ZELFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN4RCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE9BQU87Z0JBQ2IsR0FBRyxLQUFBO2FBQ0o7WUFDRCxVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUM7UUFFRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsR0FBRztZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxtQkFBbUI7b0JBQ3JDLE9BQU8sRUFBRSxFQUFFO2lCQUNaLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFFTywwQ0FBVzs7Ozs7SUFBbkIsVUFBb0IsRUFBVTtRQUE5QixpQkEwQkM7UUF6QkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0I7WUFDcEMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFFRyxJQUFBLG1DQUF3RCxFQUF0RCx3QkFBUyxFQUFFLHNCQUEyQztRQUU5RCxJQUFJLENBQUMsWUFBWTthQUNkLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLFdBQUEsRUFBRSxRQUFRLFVBQUEsRUFBRSxDQUFDO2FBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVM7Ozs7UUFBQyxVQUFDLEdBQUc7WUFDTCxJQUFBLGVBQUk7WUFDSixJQUFBLHdCQUFRO1lBQ2hCLEtBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFeEIsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osUUFBUSxDQUFDLE9BQU87Ozs7Z0JBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxLQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBOUQsQ0FBOEQsRUFBQyxDQUFDO2FBQzVGO1FBQ0gsQ0FBQyxFQUFDO2FBQ0QsR0FBRzs7O1FBQUM7WUFDSCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0I7Z0JBQ3BDLE9BQU8sRUFBRSxLQUFLO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7Ozs7SUFFTyw0Q0FBYTs7Ozs7SUFBckIsVUFBc0IsR0FBRztRQUNmLElBQUEsZUFBSSxFQUFFLGVBQUk7UUFDVixJQUFBLDhCQUFXO1FBQ1gsSUFBQSwwQkFBUyxFQUFFLHdCQUFRO1FBRTNCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxXQUFBLEVBQUUsUUFBUSxVQUFBLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDOzs7Ozs7SUFFTywrQ0FBZ0I7Ozs7O0lBQXhCLFVBQXlCLEVBQVU7UUFBbkMsaUJBZ0NDO1FBL0JDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ2hCLElBQUksRUFBRSxXQUFXLENBQUMsa0JBQWtCO1lBQ3BDLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBQ0csSUFBQSxtQ0FBd0QsRUFBdEQsd0JBQVMsRUFBRSxzQkFBMkM7UUFFOUQsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsU0FBUyxXQUFBLEVBQUUsUUFBUSxVQUFBLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO2dCQUNsQyxPQUFPLEVBQUUsRUFBRTthQUNaLENBQUM7U0FDSCxDQUFDO2FBQ0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUzs7OztRQUFDLFVBQUMsRUFBdUI7Z0JBQXZCLDBCQUF1QixFQUF0QixrQkFBVSxFQUFFLGlCQUFTOztnQkFDMUIsVUFBVSxHQUFHLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUU7O2dCQUM5QyxNQUFNLEdBQUcsU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRTs7Z0JBQ3JFLFNBQVMsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDO1lBQzlFLEtBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0IsS0FBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RCxJQUFJLFVBQVUsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQy9DLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87Ozs7Z0JBQUMsVUFBQyxJQUFJO29CQUNwQyxPQUFBLEtBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztnQkFBOUQsQ0FBOEQsRUFDL0QsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxFQUFDO2FBQ0QsR0FBRzs7O1FBQUM7WUFDSCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0I7Z0JBQ3BDLE9BQU8sRUFBRSxLQUFLO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7O0lBRU0sc0RBQXVCOzs7SUFBOUI7UUFDRSxPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZTtZQUM1QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjO1lBQzFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7U0FDdEMsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRU0saURBQWtCOzs7O0lBQXpCLFVBQTBCLEtBQWdCO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7Ozs7O0lBRU8sa0RBQW1COzs7OztJQUEzQixVQUE0QixVQUFxQjtRQUMvQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDaEIsSUFBQSwwQkFBTSxFQUFFLGdDQUFTLEVBQUUsOEJBQVE7UUFFbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLFNBQVMsV0FBQTtZQUNULFFBQVEsVUFBQTtZQUNSLE1BQU0sUUFBQTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQUksMkNBQVM7Ozs7UUFBYjtZQUNFLE9BQU8sQ0FDTCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87Z0JBQ3pCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDbkMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDcEIsQ0FBQztRQUNKLENBQUM7OztPQUFBOzs7O0lBRUQsMENBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7WUFDdkMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNoQixJQUFJLEVBQUUsV0FBVyxDQUFDLG1CQUFtQjtZQUNyQyxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOztnQkExUkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLHluRkFBNEM7O2lCQUU3Qzs7OztnQkFwQlEsU0FBUztnQkFRVCxZQUFZO2dCQUNaLGVBQWU7Z0JBSGYsc0JBQXNCO2dCQVB0QixpQkFBaUI7OzsyQkF1QnZCLEtBQUs7c0NBQ0wsS0FBSztzQ0FDTCxLQUFLO3VDQUNMLEtBQUs7O0lBa1JSLDJCQUFDO0NBQUEsQUEzUkQsSUEyUkM7U0F0Ulksb0JBQW9COzs7SUFDL0Isd0NBQTRCOztJQUM1QixtREFBOEM7O0lBQzlDLG1EQUE4Qzs7SUFDOUMsb0RBQStDOzs7OztJQVkvQyw0Q0FBMkM7O0lBQzNDLGdEQUFtQzs7SUFDbkMsOENBQThDOztJQUM5Qyx3Q0FBdUU7O0lBQ3ZFLDZDQUFzQzs7SUFDdEMsc0NBQTRCOztJQWQxQixzQ0FBd0I7O0lBQ3hCLDRDQUFpQzs7Ozs7SUFDakMsK0NBQXdDOzs7OztJQUN4QyxtQ0FBbUM7Ozs7O0lBQ25DLGlEQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMvaW50ZXJuYWwvU3ViamVjdCc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFzc2V0TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hc3NldC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXNzZXRNb2RlbCwgRm9sZGVyVHJlZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFzc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fzc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZVRyZWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm9kZS10cmVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZXMsIHNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlJztcbmltcG9ydCB7IEFkZEZvbGRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1mb2xkZXItZGlhbG9nL2FkZC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWxldGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9kZWxldGUtZGlhbG9nL2RlbGV0ZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFVwbG9hZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZC1kaWFsb2cvdXBsb2FkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbm9kZS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vZGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vZGUtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOb2RlRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaXNEaWFsb2c/OiBib29sZWFuO1xuICBASW5wdXQoKSBoYXNNb2RpZnlQZXJtaXNzaW9uPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGhhc0FjY2Vzc1Blcm1pc3Npb24/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaGFzQXJjaGl2ZVBlcm1pc3Npb24/OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHVibGljIGFzc2V0U2VydmljZTogQXNzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZVRyZWVTZXJ2aWNlOiBOb2RlVHJlZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdmM6IEFzc2V0TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5iaW5kU3Vic2NyaWJlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgZm9sZGVyUGFnaW5hdGlvbjogUGFnZUV2ZW50O1xuICBwdWJsaWMgc2VsZWN0ZWRBc3NldHM6IEFycmF5PEFzc2V0TW9kZWw+ID0gW107XG4gIHB1YmxpYyBsb2FkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBjdXJyZW50Rm9sZGVyOiBGb2xkZXJUcmVlTW9kZWw7XG4gIHB1YmxpYyBhc3NldHM6IEFzc2V0TW9kZWxbXTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFzc2V0U2VydmljZVxuICAgICAgLmdldEZvbGRlckxpc3QoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZvbGRlcnMpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Rm9sZGVyID0gZm9sZGVycztcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmFzc2V0U2VydmljZVxuICAgICAgLmdldEFzc2V0TGlzdCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoYXNzZXRzKSA9PiB7XG4gICAgICAgIHRoaXMuYXNzZXRzID0gYXNzZXRzO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3Vic2NyaWJlcigpIHtcbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxMb2FkaW5nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiBvZihyZXMpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZ2xvYmFsTG9hZGluZykgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQoZ2xvYmFsTG9hZGluZyk7XG4gICAgICB9KTtcblxuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkQXNzZXRzKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGVkQXNzZXRzKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZEFzc2V0cykge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBc3NldHMgPSBzZWxlY3RlZEFzc2V0cztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50Rm9sZGVySWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IG9mKHJlcykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjdXJyZW50Rm9sZGVySWQpID0+IHtcbiAgICAgICAgaWYgKGN1cnJlbnRGb2xkZXJJZCkge1xuICAgICAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VJbmRleCA9IDA7XG4gICAgICAgICAgdGhpcy5mZXRjaE5vZGVEZXRhaWxzKGN1cnJlbnRGb2xkZXJJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUucmVsb2FkQ3VycmVudEZvbGRlcilcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gb2YocmVzKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudEZvbGRlcikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZldGNoRm9sZGVyKHRoaXMuY3VycmVudEZvbGRlci5Bc3NldElkKTtcbiAgICAgIH0pO1xuXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUucmVsb2FkQ3VycmVudE5vZGUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IG9mKHJlcykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRGb2xkZXIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hc3NldFNlcnZpY2UucGFnZUluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5mZXRjaE5vZGVEZXRhaWxzKHRoaXMuY3VycmVudEZvbGRlci5Bc3NldElkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW5VcGxvYWREaWFsb2coKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVcGxvYWREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY3VycmVudEFzc2V0SWQ6IHRoaXMuY3VycmVudEZvbGRlci5Bc3NldElkLFxuICAgICAgICBmaWxlVHlwZTogdGhpcy5hc3NldFNlcnZpY2UuZGlhbG9nQ29uZmlnLmFsbG93ZWRUeXBlLFxuICAgICAgICBtYXhTaXplOiB0aGlzLmFzc2V0U2VydmljZS5tYXhTaXplXG4gICAgICB9LFxuICAgICAgcGFuZWxDbGFzczogJ2xpYi1kaWFsb2ctLW1lZGl1bScsXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfQVNTRVRTLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0ZPTERFUixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhZGRGb2xkZXIoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBZGRGb2xkZXJEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY3VycmVudEFzc2V0SWQ6IHRoaXMuY3VycmVudEZvbGRlci5Bc3NldElkLFxuICAgICAgfSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdsaWItZGlhbG9nLS1zbWFsbCcsXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfRk9MREVSLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUFzc2V0cygpIHtcbiAgICBjb25zdCBpZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXRzLm1hcCgoYXNzZXQpID0+IGFzc2V0LkFzc2V0SWQpO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRGVsZXRlRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHR5cGU6ICdmaWxlcycsXG4gICAgICAgIGlkcyxcbiAgICAgIH0sXG4gICAgICBwYW5lbENsYXNzOiAnbGliLWRpYWxvZy0tc21hbGwnLFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9BU1NFVFMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfRk9MREVSLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9TRUxFQ1RFRF9BU1NFVFMsXG4gICAgICAgICAgcGF5bG9hZDogW10sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEZvbGRlcihpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX0dMT0JBTF9MT0FESU5HLFxuICAgICAgcGF5bG9hZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgcGFnZUluZGV4LCBwYWdlU2l6ZSB9ID0gdGhpcy5nZXRGb2xkZXJQYWdlUGFnaW5hdGlvbigpO1xuXG4gICAgdGhpcy5hc3NldFNlcnZpY2VcbiAgICAgIC5nZXRDaGlsZHJlbkZvbGRlcnMoeyBhc3NldElkOiBpZCwgcGFnZUluZGV4LCBwYWdlU2l6ZSB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBjb25zdCB7IERhdGEgfSA9IHJlcztcbiAgICAgICAgY29uc3QgeyBDaGlsZHJlbiB9ID0gRGF0YTtcbiAgICAgICAgdGhpcy5zZXRGb2xkZXJMaXN0KHJlcyk7XG5cbiAgICAgICAgaWYgKENoaWxkcmVuKSB7XG4gICAgICAgICAgQ2hpbGRyZW4uZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5ub2RlVHJlZVNlcnZpY2UuYWRkTm9kZShub2RlLCB0aGlzLmN1cnJlbnRGb2xkZXIuQXNzZXRJZCkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvbGRlckxpc3QocmVzKSB7XG4gICAgY29uc3QgeyBEYXRhLCBNZXRhIH0gPSByZXM7XG4gICAgY29uc3QgeyBUb3RhbEZvbGRlciB9ID0gRGF0YTtcbiAgICBjb25zdCB7IFBhZ2VJbmRleCwgUGFnZVNpemUgfSA9IE1ldGE7XG5cbiAgICB0aGlzLmFzc2V0U2VydmljZS5zZXRGb2xkZXJMaXN0KERhdGEsIHsgVG90YWw6IFRvdGFsRm9sZGVyLCBQYWdlSW5kZXgsIFBhZ2VTaXplIH0pO1xuICAgIHRoaXMuc2V0Rm9sZGVyUGFnaW5hdGlvbih7IGxlbmd0aDogVG90YWxGb2xkZXIsIHBhZ2VJbmRleDogUGFnZUluZGV4LCBwYWdlU2l6ZTogUGFnZVNpemUgfSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoTm9kZURldGFpbHMoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9HTE9CQUxfTE9BRElORyxcbiAgICAgIHBheWxvYWQ6IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgeyBwYWdlSW5kZXgsIHBhZ2VTaXplIH0gPSB0aGlzLmdldEZvbGRlclBhZ2VQYWdpbmF0aW9uKCk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLmdldENoaWxkcmVuRm9sZGVycyh7IGFzc2V0SWQ6IGlkLCBwYWdlSW5kZXgsIHBhZ2VTaXplIH0pLFxuICAgICAgdGhpcy5hc3NldFNlcnZpY2UuZ2V0Q2hpbGRyZW5Bc3NldHMoe1xuICAgICAgICBhc3NldElkOiBpZCxcbiAgICAgIH0pLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoW2ZvbGRlcnNSZXMsIGFzc2V0c1Jlc10pID0+IHtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IGFzc2V0c1JlcyAmJiBhc3NldHNSZXMuTWV0YSB8fCB7fTtcbiAgICAgICAgY29uc3QgYXNzZXRzID0gYXNzZXRzUmVzICYmIGFzc2V0c1Jlcy5EYXRhICYmIGFzc2V0c1Jlcy5EYXRhLkNoaWxkcmVuIHx8IFtdO1xuICAgICAgICBjb25zdCB0b3RhbEZpbGUgPSBhc3NldHNSZXMgJiYgYXNzZXRzUmVzLkRhdGEgJiYgYXNzZXRzUmVzLkRhdGEuVG90YWxGaWxlIHx8IDA7XG4gICAgICAgIHRoaXMuc2V0Rm9sZGVyTGlzdChmb2xkZXJzUmVzKTtcbiAgICAgICAgdGhpcy5hc3NldFNlcnZpY2Uuc2V0QXNzZXRMaXN0KGFzc2V0cywgcGFnaW5hdGlvbiwgdG90YWxGaWxlKTtcbiAgICAgICAgaWYgKGZvbGRlcnNSZXMuRGF0YSAmJiBmb2xkZXJzUmVzLkRhdGEuQ2hpbGRyZW4pIHtcbiAgICAgICAgICBmb2xkZXJzUmVzLkRhdGEuQ2hpbGRyZW4uZm9yRWFjaCgobm9kZSkgPT5cbiAgICAgICAgICAgIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmFkZE5vZGUobm9kZSwgdGhpcy5jdXJyZW50Rm9sZGVyLkFzc2V0SWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX0dMT0JBTF9MT0FESU5HLFxuICAgICAgICAgIHBheWxvYWQ6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZvbGRlclBhZ2VQYWdpbmF0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlSW5kZXg6IHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VGb2xkZXJJbmRleCxcbiAgICAgIHBhZ2VTaXplOiB0aGlzLmFzc2V0U2VydmljZS5wYWdlRm9sZGVyU2l6ZSxcbiAgICAgIGxlbmd0aDogdGhpcy5hc3NldFNlcnZpY2UuZm9sZGVyVG90YWwsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvbGRlclBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCkge1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VGb2xkZXJJbmRleCA9IGV2ZW50LnBhZ2VJbmRleDtcbiAgICB0aGlzLmFzc2V0U2VydmljZS5wYWdlRm9sZGVyU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xuICAgIHRoaXMuZmV0Y2hGb2xkZXIodGhpcy5jdXJyZW50Rm9sZGVyLkFzc2V0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb2xkZXJQYWdpbmF0aW9uKHBhZ2luYXRpb246IFBhZ2VFdmVudCkge1xuICAgIGlmICghcGFnaW5hdGlvbikgcmV0dXJuO1xuICAgIGNvbnN0IHsgbGVuZ3RoLCBwYWdlSW5kZXgsIHBhZ2VTaXplIH0gPSBwYWdpbmF0aW9uO1xuXG4gICAgdGhpcy5mb2xkZXJQYWdpbmF0aW9uID0ge1xuICAgICAgcGFnZUluZGV4LFxuICAgICAgcGFnZVNpemUsXG4gICAgICBsZW5ndGhcbiAgICB9O1xuICB9XG5cbiAgZ2V0IG5vUmVzdWx0cygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5hc3NldFNlcnZpY2Uua2V5d29yZCAmJlxuICAgICAgIXRoaXMuY3VycmVudEZvbGRlci5DaGlsZHJlbi5sZW5ndGggJiZcbiAgICAgICF0aGlzLmFzc2V0cy5sZW5ndGhcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX0NVUlJFTlRfRk9MREVSX0lELFxuICAgICAgcGF5bG9hZDogbnVsbCxcbiAgICB9KTtcbiAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxuICAgICAgcGF5bG9hZDogW10sXG4gICAgfSk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbn0iXX0=
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import { FlatTreeControl } from
|
|
7
|
-
import { ChangeDetectorRef, Component, Input } from
|
|
8
|
-
import { of, Subject } from
|
|
9
|
-
import { distinctUntilChanged, switchMap, takeUntil } from
|
|
10
|
-
import { AssetManagementService } from
|
|
11
|
-
import { NodeTreeDataSource } from
|
|
12
|
-
import { MAX_FOLDER_TREE_SIZE, ROOT_ASSET_ID } from
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
6
|
+
import { FlatTreeControl } from "@angular/cdk/tree";
|
|
7
|
+
import { ChangeDetectorRef, Component, Input } from "@angular/core";
|
|
8
|
+
import { of, Subject } from "rxjs";
|
|
9
|
+
import { distinctUntilChanged, switchMap, takeUntil } from "rxjs/operators";
|
|
10
|
+
import { AssetManagementService } from "../../../asset-management.service";
|
|
11
|
+
import { NodeTreeDataSource } from "../../../datasources";
|
|
12
|
+
import { MAX_FOLDER_TREE_SIZE, ROOT_ASSET_ID } from "../../../models";
|
|
13
|
+
import { AssetService } from "../../../services/asset.service";
|
|
14
|
+
import { NodeTreeService } from "../../../services/node-tree.service";
|
|
15
|
+
import { ActionTypes, select } from "../../../store/index";
|
|
16
16
|
var NodeTreeComponent = /** @class */ (function () {
|
|
17
17
|
function NodeTreeComponent(assetService, nodeTreeService, svc, changeDetectorRef) {
|
|
18
18
|
this.assetService = assetService;
|
|
@@ -54,7 +54,7 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
54
54
|
var rootFolder = this.folderChildrenMap.get(ROOT_ASSET_ID);
|
|
55
55
|
return {
|
|
56
56
|
length: rootFolder ? rootFolder.size : 0,
|
|
57
|
-
total: this.nodeTreeService.rootFolder ? this.nodeTreeService.rootFolder.TotalFolder ||
|
|
57
|
+
total: this.nodeTreeService.rootFolder ? this.nodeTreeService.rootFolder.TotalFolder || "0" : 0,
|
|
58
58
|
};
|
|
59
59
|
},
|
|
60
60
|
enumerable: true,
|
|
@@ -127,9 +127,7 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
127
127
|
*/
|
|
128
128
|
function () {
|
|
129
129
|
var _this = this;
|
|
130
|
-
this.nodeTreeService.loading$
|
|
131
|
-
.pipe(takeUntil(this.unsubscribe$), distinctUntilChanged())
|
|
132
|
-
.subscribe((/**
|
|
130
|
+
this.nodeTreeService.loading$.pipe(takeUntil(this.unsubscribe$), distinctUntilChanged()).subscribe((/**
|
|
133
131
|
* @param {?} loading
|
|
134
132
|
* @return {?}
|
|
135
133
|
*/
|
|
@@ -137,9 +135,7 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
137
135
|
_this.homeLoading = loading;
|
|
138
136
|
_this.changeDetectorRef.detectChanges();
|
|
139
137
|
}));
|
|
140
|
-
this.nodeTreeService.initialData$
|
|
141
|
-
.pipe(takeUntil(this.unsubscribe$), distinctUntilChanged())
|
|
142
|
-
.subscribe((/**
|
|
138
|
+
this.nodeTreeService.initialData$.pipe(takeUntil(this.unsubscribe$), distinctUntilChanged()).subscribe((/**
|
|
143
139
|
* @param {?} data
|
|
144
140
|
* @return {?}
|
|
145
141
|
*/
|
|
@@ -154,9 +150,7 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
154
150
|
function (node) { return _this.nodeTreeService.addNode(node.item, null); }));
|
|
155
151
|
_this.changeDetectorRef.detectChanges();
|
|
156
152
|
}));
|
|
157
|
-
this.dataSource.dataChange
|
|
158
|
-
.pipe(takeUntil(this.unsubscribe$))
|
|
159
|
-
.subscribe((/**
|
|
153
|
+
this.dataSource.dataChange.pipe(takeUntil(this.unsubscribe$)).subscribe((/**
|
|
160
154
|
* @param {?} data
|
|
161
155
|
* @return {?}
|
|
162
156
|
*/
|
|
@@ -327,11 +321,13 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
327
321
|
this.setLoadingMore(id, true);
|
|
328
322
|
children = this.folderChildrenMap.get(id);
|
|
329
323
|
itemsPerPage = this.assetService.AMConfig.pageFolderSize || MAX_FOLDER_TREE_SIZE;
|
|
330
|
-
return [4 /*yield*/, this.assetService
|
|
324
|
+
return [4 /*yield*/, this.assetService
|
|
325
|
+
.getChildrenFolders({
|
|
331
326
|
assetId: id === ROOT_ASSET_ID ? null : id,
|
|
332
327
|
isFilter: false,
|
|
333
|
-
pageIndex: Math.round((children ? children.size : 0) / itemsPerPage)
|
|
334
|
-
})
|
|
328
|
+
pageIndex: Math.round((children ? children.size : 0) / itemsPerPage),
|
|
329
|
+
})
|
|
330
|
+
.toPromise()];
|
|
335
331
|
case 2:
|
|
336
332
|
result = _a.sent();
|
|
337
333
|
assetChildren = result.Data.Children || [];
|
|
@@ -358,7 +354,7 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
358
354
|
return [3 /*break*/, 4];
|
|
359
355
|
case 3:
|
|
360
356
|
error_1 = _a.sent();
|
|
361
|
-
console.log(
|
|
357
|
+
console.log("Load more folder error", error_1);
|
|
362
358
|
this.setLoadingMore(id, false);
|
|
363
359
|
return [3 /*break*/, 4];
|
|
364
360
|
case 4: return [2 /*return*/];
|
|
@@ -439,7 +435,7 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
439
435
|
*/
|
|
440
436
|
function (id) {
|
|
441
437
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
442
|
-
var node, parent_1, updatedNode;
|
|
438
|
+
var node, parent_1, children, updatedNode, rootFolder, updatedNode;
|
|
443
439
|
return tslib_1.__generator(this, function (_a) {
|
|
444
440
|
switch (_a.label) {
|
|
445
441
|
case 0:
|
|
@@ -448,30 +444,45 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
448
444
|
}
|
|
449
445
|
this.loading = true;
|
|
450
446
|
node = this.getNodeById(id);
|
|
451
|
-
if (!node) return [3 /*break*/,
|
|
447
|
+
if (!node) return [3 /*break*/, 8];
|
|
452
448
|
parent_1 = this.getParent(node);
|
|
453
449
|
if (!parent_1) return [3 /*break*/, 4];
|
|
454
450
|
// Reload parent folder (get children and expand it again)
|
|
455
|
-
|
|
451
|
+
children = this.folderChildrenMap.get(parent_1.item.AssetId);
|
|
452
|
+
return [4 /*yield*/, this.dataSource.reloadNode(parent_1, children.size)];
|
|
456
453
|
case 1:
|
|
457
|
-
// Reload parent folder (get children and expand it again)
|
|
458
454
|
_a.sent();
|
|
459
455
|
updatedNode = this.getNodeById(id);
|
|
460
456
|
if (!updatedNode) return [3 /*break*/, 3];
|
|
457
|
+
// TODO
|
|
461
458
|
return [4 /*yield*/, this.treeControl.expand(updatedNode)];
|
|
462
459
|
case 2:
|
|
460
|
+
// TODO
|
|
463
461
|
_a.sent();
|
|
464
462
|
_a.label = 3;
|
|
465
|
-
case 3: return [3 /*break*/,
|
|
466
|
-
case 4:
|
|
467
|
-
|
|
463
|
+
case 3: return [3 /*break*/, 7];
|
|
464
|
+
case 4:
|
|
465
|
+
rootFolder = this.folderChildrenMap.get(ROOT_ASSET_ID);
|
|
466
|
+
return [4 /*yield*/, this.nodeTreeService.initialData({ dispatchRootId: false, pageSize: rootFolder.size })];
|
|
467
|
+
case 5:
|
|
468
|
+
_a.sent();
|
|
469
|
+
updatedNode = this.getNodeById(id);
|
|
470
|
+
if (!updatedNode) return [3 /*break*/, 7];
|
|
471
|
+
// TODO
|
|
472
|
+
return [4 /*yield*/, this.treeControl.expand(updatedNode)];
|
|
473
|
+
case 6:
|
|
474
|
+
// TODO
|
|
475
|
+
_a.sent();
|
|
476
|
+
_a.label = 7;
|
|
477
|
+
case 7: return [3 /*break*/, 10];
|
|
478
|
+
case 8:
|
|
468
479
|
// Reload root folder
|
|
469
480
|
return [4 /*yield*/, this.nodeTreeService.initialData({ dispatchRootId: false })];
|
|
470
|
-
case
|
|
481
|
+
case 9:
|
|
471
482
|
// Reload root folder
|
|
472
483
|
_a.sent();
|
|
473
|
-
_a.label =
|
|
474
|
-
case
|
|
484
|
+
_a.label = 10;
|
|
485
|
+
case 10:
|
|
475
486
|
this.loading = false;
|
|
476
487
|
return [2 /*return*/];
|
|
477
488
|
}
|
|
@@ -507,9 +518,9 @@ var NodeTreeComponent = /** @class */ (function () {
|
|
|
507
518
|
};
|
|
508
519
|
NodeTreeComponent.decorators = [
|
|
509
520
|
{ type: Component, args: [{
|
|
510
|
-
selector:
|
|
521
|
+
selector: "lib-node-tree",
|
|
511
522
|
template: "<div class=\"node custom-scrollbar node-tree\">\n <div class=\"node__home\" (click)=\"backToHome()\" [ngClass]=\"{ active: isRoot,\n disabled: loading || homeLoading}\">\n <mat-icon *ngIf=\"!homeLoading\">home</mat-icon>\n <mat-spinner *ngIf=\"homeLoading\" [diameter]=\"20\"\n class=\"node__home--loading\"></mat-spinner>\n <span>Home</span>\n </div>\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\"\n class=\"node__item\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodePadding\n [ngClass]=\"{ active: checked(node),disabled: loading || node.isLoading }\"\n (click)=\"selectNode(node)\">\n <button mat-icon-button disabled class=\"node__item--pading\"></button>\n <div class=\"node__item--info\" [style.maxWidth.px]=\"width -50\">\n <mat-icon class=\"folder-icon\">folder</mat-icon>\n <div class=\"node-name\">\n <span>\n {{ node.item.OriginalFileName }}\n </span>\n <span class=\"node-summary\" *ngIf=\"node.item?.TotalFolder ||\n node.item?.TotalFile\">\n <small *ngIf=\"node.item?.TotalFolder\">{{ node.item?.TotalFolder}}\n {{node.item?.TotalFolder> 1 ?\n 'folders':'folder'}}</small>\n <small *ngIf=\"node.item?.TotalFolder && node.item?.TotalFile\">,\n </small>\n <small *ngIf=\"node.item?.TotalFile\">{{ node.item?.TotalFile}}\n {{node.item?.TotalFile> 1 ?\n 'files':'file'}}</small>\n </span>\n </div>\n </div>\n </mat-tree-node>\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding \n [ngClass]=\"{ active: checked(node), disabled: loading || node.isLoading\n }\">\n <div class=\"d-flex align-items-center\" (click)=\"selectNode(node)\">\n <button mat-icon-button [attr.aria-label]=\"'Toggle ' +\n node.item.OriginalFileName\" matTreeNodeToggle\n [disabled]=\"node.isLoading\">\n <mat-icon *ngIf=\"!node.isLoading\" class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n <mat-spinner *ngIf=\"node.isLoading\" [diameter]=\"20\"\n class=\"node__item--loading\"></mat-spinner>\n </button>\n <div class=\"node__item--info\" [style.maxWidth.px]=\"width -50\">\n <mat-icon class=\"folder-icon\">folder</mat-icon>\n <div class=\"node-name\">\n <span>\n {{ node.item.OriginalFileName }}\n </span>\n <span class=\"node-summary\">\n <small *ngIf=\"node.item?.TotalFolder\"><ng-container *ngIf=\"treeControl.isExpanded(node)\"><b>{{getFolderChildrenSize(node.item.AssetId)}}</b>/</ng-container>{{ node.item?.TotalFolder}}\n {{node.item?.TotalFolder> 1 ?\n 'folders':'folder'}}</small>\n <small *ngIf=\"node.item?.TotalFolder && node.item?.TotalFile\">,\n </small>\n <small *ngIf=\"node.item?.TotalFile\">{{ node.item?.TotalFile}}\n {{node.item?.TotalFile> 1 ?\n 'files':'file'}}</small>\n </span>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"treeControl.isExpanded(node)\"> \n <div *ngIf=\"!!loadingMoreList[node.item.AssetId]\" class=\"mx-2\" [style.minWidth.px]=\"40\">\n <mat-spinner [diameter]=\"20\"\n class=\"node__item--loading\"></mat-spinner>\n </div>\n <button *ngIf=\"!loadingMoreList[node.item.AssetId] && canLoadMore(node)\" matTooltip=\"Load More\" class=\"mx-2\" mat-icon-button (click)=\"loadMoreFolder(node)\" [disabled]=\"loadingMoreList[node.item.AssetId] || homeLoading || loading\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#5f6368\"><path d=\"m482-200 114-113-114-113-42 42 43 43q-28 1-54.5-9T381-381q-20-20-30.5-46T340-479q0-17 4.5-34t12.5-33l-44-44q-17 25-25 53t-8 57q0 38 15 75t44 66q29 29 65 43.5t74 15.5l-38 38 42 42Zm165-170q17-25 25-53t8-57q0-38-14.5-75.5T622-622q-29-29-65.5-43T482-679l38-39-42-42-114 113 114 113 42-42-44-44q27 0 55 10.5t48 30.5q20 20 30.5 46t10.5 52q0 17-4.5 34T603-414l44 44ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/></svg>\n </button>\n </ng-container>\n </mat-tree-node>\n </mat-tree>\n <div class=\"p-2 d-flex flex-column align-items-center justify-content-center\" *ngIf=\"folderTreeMeta.length\">\n <button mat-raised-button *ngIf=\"folderTreeMeta.length !== folderTreeMeta.total\" (click)=\"loadMoreFolder()\" [disabled]=\"loadingMoreList[ROOT_ASSET_ID] || loading || homeLoading\">\n <div class=\"d-flex align-items-center\">\n <mat-spinner [diameter]=\"20\" *ngIf=\"loadingMoreList[ROOT_ASSET_ID]\"></mat-spinner>\n <mat-icon *ngIf=\"!loadingMoreList[ROOT_ASSET_ID]\">expand_more</mat-icon>\n <div class=\"ml-2\">Load More</div>\n </div>\n </button>\n <div class=\"mt-2\" [style.fontSize.px]=\"13\"><b>{{ folderTreeMeta.length }}</b> of <b>{{ folderTreeMeta.total }} folders</b></div>\n </div>\n</div>",
|
|
512
|
-
styles: [":host::ng-deep .node{overflow-x:hidden;height:100%;display
|
|
523
|
+
styles: [":host::ng-deep .node{overflow-x:hidden;height:100%;display:grid;grid-auto-rows:max-content}:host::ng-deep .node-tree{max-height:max(800px,90vh);overflow-y:auto}:host::ng-deep .node__home{padding:8px 10px;display:flex;align-items:center;height:44px}:host::ng-deep .node__home .mat-icon{color:#979797;margin-right:15px;margin-bottom:10px;font-size:32px}:host::ng-deep .node__home .node__home--loading{margin-right:19px}:host::ng-deep .node__item--loading{margin-left:10px}:host::ng-deep .node__item--info{display:flex;align-items:center}:host::ng-deep .node__item--info .folder-icon{display:flex;align-items:center;color:#6fc0ff;font-size:32px;margin-right:20px}:host::ng-deep .node__item--info .node-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .node__item--info .node-name span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .node__item--info .node-name .node-summary{margin-top:-5px;color:#979797}:host::ng-deep .node .mat-tree{width:-moz-max-content!important;width:max-content!important;min-width:100%}:host::ng-deep .node .mat-tree .mat-tree-node{padding:5px 0;min-height:44px}:host::ng-deep .node .mat-tree .mat-tree-node .node__item--pading{height:20px}:host::ng-deep .node .mat-tree-node:hover,:host::ng-deep .node .node__home{transition:.3s;cursor:pointer}:host::ng-deep .node .mat-tree-node:hover:hover,:host::ng-deep .node .node__home:hover{background-color:#e8e8e8}:host::ng-deep .node .active{background-color:#f0f0f0}:host::ng-deep .node .disabled{pointer-events:none}"]
|
|
513
524
|
}] }
|
|
514
525
|
];
|
|
515
526
|
/** @nocollapse */
|
|
@@ -575,4 +586,4 @@ if (false) {
|
|
|
575
586
|
*/
|
|
576
587
|
NodeTreeComponent.prototype.changeDetectorRef;
|
|
577
588
|
}
|
|
578
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9ub2RlLXRyZWUvbm9kZS10cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRDtJQU1FLDJCQUNTLFlBQTBCLEVBQ3pCLGVBQWdDLEVBQ2hDLEdBQTJCLEVBQzNCLGlCQUFvQztRQUhyQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFDM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVd2QyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUU5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b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLDQxS0FBeUM7O2lCQUUxQzs7OztnQkFMUSxZQUFZO2dCQUZaLGVBQWU7Z0JBSGYsc0JBQXNCO2dCQUh0QixpQkFBaUI7Ozt3QkE0QnZCLEtBQUs7O0lBeVBSLHdCQUFDO0NBQUEsQUE1UUQsSUE0UUM7U0F2UVksaUJBQWlCOzs7SUFjNUIsa0NBQXVCOztJQUV2QiwwQ0FBcUM7O0lBQ3JDLDRDQUErQjs7SUFDL0IsbUNBQXNCOztJQUN0Qix3Q0FBMkI7O0lBQzNCLG9DQUF1Qjs7SUFDdkIsNENBQTJCOztJQUMzQix3Q0FBcUQ7O0lBQ3JELHVDQUFzQzs7SUFDdEMsOENBQWdGOzs7OztJQUNoRix5Q0FBMkM7O0lBMkszQyxxQ0FBaUQ7O0lBRWpELHlDQUEwRDs7SUFFMUQscUNBQTJFOztJQXRNekUseUNBQWlDOzs7OztJQUNqQyw0Q0FBd0M7Ozs7O0lBQ3hDLGdDQUFtQzs7Ozs7SUFDbkMsOENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlVHJlZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBEeW5hbWljRmxhdE5vZGUsIE1BWF9GT0xERVJfVFJFRV9TSVpFLCBST09UX0FTU0VUX0lEIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE5vZGVUcmVlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vZGUtdHJlZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBzZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9pbmRleCc7XG5pbXBvcnQgeyBBc3NldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hc3NldC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ub2RlLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm9kZS10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm9kZS10cmVlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYXNzZXRTZXJ2aWNlOiBBc3NldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub2RlVHJlZVNlcnZpY2U6IE5vZGVUcmVlU2VydmljZSxcbiAgICBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxEeW5hbWljRmxhdE5vZGU+KFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlXG4gICAgKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTm9kZVRyZWVEYXRhU291cmNlKHRoaXMudHJlZUNvbnRyb2wsIG5vZGVUcmVlU2VydmljZSk7XG4gIH1cblxuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuXG4gIHB1YmxpYyBST09UX0FTU0VUX0lEID0gUk9PVF9BU1NFVF9JRDsgXG4gIHB1YmxpYyBjdXJyZW50Rm9sZGVySWQ6IHN0cmluZztcbiAgcHVibGljIGlzUm9vdCA9IGZhbHNlO1xuICBwdWJsaWMgaG9tZUxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmdNb3JlTGlzdCA9IHt9XG4gIHB1YmxpYyB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPER5bmFtaWNGbGF0Tm9kZT47XG4gIHB1YmxpYyBkYXRhU291cmNlOiBOb2RlVHJlZURhdGFTb3VyY2U7XG4gIHB1YmxpYyBmb2xkZXJDaGlsZHJlbk1hcDogTWFwPHN0cmluZywgTWFwPHN0cmluZywgRHluYW1pY0ZsYXROb2RlPj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBnZXQgZm9sZGVyVHJlZU1ldGEoKXtcbiAgICBjb25zdCByb290Rm9sZGVyID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQoUk9PVF9BU1NFVF9JRCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlbmd0aDogcm9vdEZvbGRlciA/IHJvb3RGb2xkZXIuc2l6ZSA6IDAsXG4gICAgICB0b3RhbDogdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlciA/IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnJvb3RGb2xkZXIuVG90YWxGb2xkZXIgfHwgJzAnIDogMCxcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmJpbmRTdWJzY3JpYmVyKCk7XG4gICAgdGhpcy5pbml0aWFsRGF0YSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsRGF0YSgpIHtcbiAgICBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSh7IGRpc3BhdGNoUm9vdElkOiB0cnVlIH0pO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGdldEZvbGRlckNoaWxkcmVuU2l6ZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmZvbGRlckNoaWxkcmVuTWFwLmdldChpZCk7XG4gICAgcmV0dXJuIGNoaWxkcmVuID8gY2hpbGRyZW4uc2l6ZSA6IDA7XG4gIH1cblxuICBwdWJsaWMgY2FuTG9hZE1vcmUobm9kZTogRHluYW1pY0ZsYXROb2RlKXtcbiAgICBjb25zdCBzaXplID0gdGhpcy5nZXRGb2xkZXJDaGlsZHJlblNpemUobm9kZS5pdGVtLkFzc2V0SWQpO1xuICAgIHJldHVybiBzaXplIDwgbm9kZS5pdGVtLlRvdGFsRm9sZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3Vic2NyaWJlcigpIHtcbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5sb2FkaW5nJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgICAgdGhpcy5ob21lTG9hZGluZyA9IGxvYWRpbmc7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQXNzZXRJZDogcm9vdElkIH0gPSB0aGlzLm5vZGVUcmVlU2VydmljZS5yb290Rm9sZGVyIHx8IHtBc3NldElkOiBudWxsfTsgICAgIFxuICAgICAgICB0aGlzLmlzUm9vdCA9IHJvb3RJZCAmJiB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9PT0gcm9vdElkO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XG4gICAgICAgIGRhdGEuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5ub2RlVHJlZVNlcnZpY2UuYWRkTm9kZShub2RlLml0ZW0sIG51bGwpKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRGF0YXNvdXJjZUNoYW5nZShkYXRhKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50Rm9sZGVySWQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoaWQpID0+IHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgY29uc3QgeyBBc3NldElkOiByb290SWQgfSA9IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnJvb3RGb2xkZXIgfHwge0Fzc2V0SWQ6IG51bGx9O1xuICAgICAgICAgIHRoaXMuaXNSb290ID0gcm9vdElkICYmIGlkID09PSByb290SWQ7XG4gICAgICAgICAgdGhpcy5jdXJyZW50Rm9sZGVySWQgPSBpZDtcbiAgICAgICAgICBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS51cGRhdGVCcmVhZGNydW1iKGlkKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5yZWxvYWRDdXJyZW50Rm9sZGVyKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgc3dpdGNoTWFwKChyZXMpID0+IG9mKHJlcykpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVsb2FkRm9sZGVyKHRoaXMuY3VycmVudEZvbGRlcklkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRGF0YXNvdXJjZUNoYW5nZShkYXRhOiBEeW5hbWljRmxhdE5vZGVbXSA9IFtdKSB7XG4gICAgaWYgKCFkYXRhIHx8ICFkYXRhLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbWFwcyA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBEeW5hbWljRmxhdE5vZGU+PigpO1xuICAgIG1hcHMuc2V0KFJPT1RfQVNTRVRfSUQsIG5ldyBNYXAoKSk7XG5cbiAgICBkYXRhLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5vZGVJZCA9IG5vZGUuaXRlbS5Bc3NldElkO1xuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnQobm9kZSk7XG4gICAgICBjb25zdCBwYXJlbnRJZCA9IHBhcmVudCA/IHBhcmVudC5pdGVtLkFzc2V0SWQgOiBST09UX0FTU0VUX0lEO1xuXG4gICAgICBpZiAoIW1hcHMuaGFzKHBhcmVudElkKSkge1xuICAgICAgbWFwcy5zZXQocGFyZW50SWQsIG5ldyBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIG1hcHMuZ2V0KHBhcmVudElkKS5zZXQobm9kZUlkLCBub2RlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9sZGVyQ2hpbGRyZW5NYXAgPSBtYXBzOyBcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWxlY3ROb2RlKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSkge1xuICAgIGNvbnN0IHsgQXNzZXRJZDogaWQgfSA9IG5vZGUuaXRlbTtcbiAgICBpZiAoaWQgPT09IHRoaXMuY3VycmVudEZvbGRlcklkKSB7XG4gICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX05PREUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSUQsXG4gICAgICAgIHBheWxvYWQ6IGlkLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVsb2FkRm9sZGVyKGlkKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrVG9Ib21lKCkge1xuICAgIHRoaXMuaW5pdGlhbERhdGEoKTtcbiAgICBjb25zdCB7IEFzc2V0SWQ6IHJvb3RJZCB9ID0gdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlcjtcbiAgICBpZiAodGhpcy5jdXJyZW50Rm9sZGVySWQgPT09IHJvb3RJZCkge1xuICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9OT0RFLFxuICAgICAgfSk7XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9hZE1vcmVGb2xkZXIobm9kZT86IGFueSkge1xuICAgIGNvbnN0IGlkID0gbm9kZSA/IG5vZGUuaXRlbS5Bc3NldElkIDogUk9PVF9BU1NFVF9JRDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zZXRMb2FkaW5nTW9yZShpZCwgdHJ1ZSk7XG5cbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQoaWQpO1xuICAgICAgY29uc3QgaXRlbXNQZXJQYWdlID0gdGhpcy5hc3NldFNlcnZpY2UuQU1Db25maWcucGFnZUZvbGRlclNpemUgfHwgTUFYX0ZPTERFUl9UUkVFX1NJWkU7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFzc2V0U2VydmljZS5nZXRDaGlsZHJlbkZvbGRlcnMoe1xuICAgICAgICBhc3NldElkOiBpZCA9PT0gUk9PVF9BU1NFVF9JRCA/IG51bGwgOiBpZCxcbiAgICAgICAgaXNGaWx0ZXI6IGZhbHNlLFxuICAgICAgICBwYWdlSW5kZXg6ICBNYXRoLnJvdW5kKChjaGlsZHJlbiA/IGNoaWxkcmVuLnNpemUgOiAwKSAvIGl0ZW1zUGVyUGFnZSkgXG4gICAgICB9KS50b1Byb21pc2UoKTtcblxuICAgICAgY29uc3QgYXNzZXRDaGlsZHJlbiA9IHJlc3VsdC5EYXRhLkNoaWxkcmVuIHx8IFtdO1xuXG4gICAgICAvLyBIYW5kbGUgZGF0YXNvdXJjZVxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmRleE9mKG5vZGUpO1xuICAgICAgY29uc3Qgbm9kZXMgPSBhc3NldENoaWxkcmVuLm1hcCgoZm9sZGVyKSA9PiB7XG4gICAgICAgIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmFkZE5vZGUoZm9sZGVyLCBpZClcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmdldER5bmFtaWNGbGF0Tm9kZShmb2xkZXIsIG5vZGUgPyBub2RlLmxldmVsICsgMSA6IDApXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYoaWQgIT09IFJPT1RfQVNTRVRfSUQpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5zbGljZSgpO1xuICAgICAgICB1cGRhdGVkRGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5ub2Rlcyk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdXBkYXRlZERhdGE7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGEsIC4uLm5vZGVzXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0TG9hZGluZ01vcmUoaWQsIGZhbHNlKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnTG9hZCBtb3JlIGZvbGRlciBlcnJvcicsIGVycm9yKTtcbiAgICAgIHRoaXMuc2V0TG9hZGluZ01vcmUoaWQsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBjaGVja2VkKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRGb2xkZXJJZCAmJiB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9PT0gbm9kZS5pdGVtLkFzc2V0SWQ7XG4gIH1cblxuICBkaXNhYmxlZChub2RlOiBEeW5hbWljRmxhdE5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xuICB9XG5cbiAgZ2V0TGV2ZWwgPSAobm9kZTogRHluYW1pY0ZsYXROb2RlKSA9PiBub2RlLmxldmVsO1xuXG4gIGlzRXhwYW5kYWJsZSA9IChub2RlOiBEeW5hbWljRmxhdE5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZTtcblxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogRHluYW1pY0ZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcblxuICBnZXRQYXJlbnQobm9kZTogRHluYW1pY0ZsYXROb2RlKTogRHluYW1pY0ZsYXROb2RlIHtcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0aGlzLmdldExldmVsKG5vZGUpO1xuXG4gICAgaWYgKGN1cnJlbnRMZXZlbCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmRleE9mKG5vZGUpIC0gMTtcblxuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YVtpXTtcbiAgICAgIGlmICh0aGlzLmdldExldmVsKGN1cnJlbnROb2RlKSA8IGN1cnJlbnRMZXZlbCkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Tm9kZUJ5SWQoaWQ6IHN0cmluZyk6IER5bmFtaWNGbGF0Tm9kZSB7XG4gICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUuaXRlbS5Bc3NldElkID09PSBpZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVJlbG9hZEZvbGRlcihpZDogc3RyaW5nKSB7XG4gICAgaWYgKCFpZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlQnlJZChpZCk7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KG5vZGUpO1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAvLyBSZWxvYWQgcGFyZW50IGZvbGRlciAoZ2V0IGNoaWxkcmVuIGFuZCBleHBhbmQgaXQgYWdhaW4pXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZS5yZWxvYWROb2RlKHBhcmVudCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWROb2RlID0gdGhpcy5nZXROb2RlQnlJZChpZCk7XG4gICAgICAgIGlmICh1cGRhdGVkTm9kZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHVwZGF0ZWROb2RlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQlVHOiBUaGlzIHdpbGwgcmVsb2FkIHRoZSByb290IGZvbGRlciB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBmb2xkZXIgZnJvbSB0aGUgdHJlZVxuICAgICAgICAvLyBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSh7IGRpc3BhdGNoUm9vdElkOiBmYWxzZSB9KTtcbiAgICAgICAgLy8gY29uc3QgdXBkYXRlZE5vZGUgPSB0aGlzLmdldE5vZGVCeUlkKGlkKTtcbiAgICAgICAgLy8gaWYgKHVwZGF0ZWROb2RlKSB7XG4gICAgICAgIC8vICAgYXdhaXQgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodXBkYXRlZE5vZGUpO1xuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbG9hZCByb290IGZvbGRlclxuICAgICAgYXdhaXQgdGhpcy5ub2RlVHJlZVNlcnZpY2UuaW5pdGlhbERhdGEoeyBkaXNwYXRjaFJvb3RJZDogZmFsc2UgfSk7XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMb2FkaW5nTW9yZShpZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubG9hZGluZ01vcmVMaXN0W2lkXSA9IHZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbXTtcbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5kYXRhID0gW107XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
589
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9ub2RlLXRyZWUvbm9kZS10cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRDtJQU1FLDJCQUNTLFlBQTBCLEVBQ3pCLGVBQWdDLEVBQ2hDLEdBQTJCLEVBQzNCLGlCQUFvQztRQUhyQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFDM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVF2QyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUU5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RmxhdFRyZWVDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay90cmVlXCI7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBBc3NldE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgTm9kZVRyZWVEYXRhU291cmNlIH0gZnJvbSBcIi4uLy4uLy4uL2RhdGFzb3VyY2VzXCI7XG5pbXBvcnQgeyBEeW5hbWljRmxhdE5vZGUsIE1BWF9GT0xERVJfVFJFRV9TSVpFLCBST09UX0FTU0VUX0lEIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVsc1wiO1xuaW1wb3J0IHsgQXNzZXRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2Fzc2V0LnNlcnZpY2VcIjtcbmltcG9ydCB7IE5vZGVUcmVlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9ub2RlLXRyZWUuc2VydmljZVwiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZXMsIHNlbGVjdCB9IGZyb20gXCIuLi8uLi8uLi9zdG9yZS9pbmRleFwiO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImxpYi1ub2RlLXRyZWVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9ub2RlLXRyZWUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL25vZGUtdHJlZS5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgTm9kZVRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhc3NldFNlcnZpY2U6IEFzc2V0U2VydmljZSxcbiAgICBwcml2YXRlIG5vZGVUcmVlU2VydmljZTogTm9kZVRyZWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3ZjOiBBc3NldE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMudHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPER5bmFtaWNGbGF0Tm9kZT4odGhpcy5nZXRMZXZlbCwgdGhpcy5pc0V4cGFuZGFibGUpO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBOb2RlVHJlZURhdGFTb3VyY2UodGhpcy50cmVlQ29udHJvbCwgbm9kZVRyZWVTZXJ2aWNlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXI7XG5cbiAgcHVibGljIFJPT1RfQVNTRVRfSUQgPSBST09UX0FTU0VUX0lEO1xuICBwdWJsaWMgY3VycmVudEZvbGRlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBpc1Jvb3QgPSBmYWxzZTtcbiAgcHVibGljIGhvbWVMb2FkaW5nID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkaW5nTW9yZUxpc3QgPSB7fTtcbiAgcHVibGljIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8RHluYW1pY0ZsYXROb2RlPjtcbiAgcHVibGljIGRhdGFTb3VyY2U6IE5vZGVUcmVlRGF0YVNvdXJjZTtcbiAgcHVibGljIGZvbGRlckNoaWxkcmVuTWFwOiBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBEeW5hbWljRmxhdE5vZGU+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGdldCBmb2xkZXJUcmVlTWV0YSgpIHtcbiAgICBjb25zdCByb290Rm9sZGVyID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQoUk9PVF9BU1NFVF9JRCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlbmd0aDogcm9vdEZvbGRlciA/IHJvb3RGb2xkZXIuc2l6ZSA6IDAsXG4gICAgICB0b3RhbDogdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlciA/IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnJvb3RGb2xkZXIuVG90YWxGb2xkZXIgfHwgXCIwXCIgOiAwLFxuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmJpbmRTdWJzY3JpYmVyKCk7XG4gICAgdGhpcy5pbml0aWFsRGF0YSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsRGF0YSgpIHtcbiAgICBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSh7IGRpc3BhdGNoUm9vdElkOiB0cnVlIH0pO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGdldEZvbGRlckNoaWxkcmVuU2l6ZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmZvbGRlckNoaWxkcmVuTWFwLmdldChpZCk7XG4gICAgcmV0dXJuIGNoaWxkcmVuID8gY2hpbGRyZW4uc2l6ZSA6IDA7XG4gIH1cblxuICBwdWJsaWMgY2FuTG9hZE1vcmUobm9kZTogRHluYW1pY0ZsYXROb2RlKSB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuZ2V0Rm9sZGVyQ2hpbGRyZW5TaXplKG5vZGUuaXRlbS5Bc3NldElkKTtcbiAgICByZXR1cm4gc2l6ZSA8IG5vZGUuaXRlbS5Ub3RhbEZvbGRlcjtcbiAgfVxuXG4gIHByaXZhdGUgYmluZFN1YnNjcmliZXIoKSB7XG4gICAgdGhpcy5ub2RlVHJlZVNlcnZpY2UubG9hZGluZyQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgIHRoaXMuaG9tZUxvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIGNvbnN0IHsgQXNzZXRJZDogcm9vdElkIH0gPSB0aGlzLm5vZGVUcmVlU2VydmljZS5yb290Rm9sZGVyIHx8IHsgQXNzZXRJZDogbnVsbCB9O1xuICAgICAgdGhpcy5pc1Jvb3QgPSByb290SWQgJiYgdGhpcy5jdXJyZW50Rm9sZGVySWQgPT09IHJvb3RJZDtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICAgIGRhdGEuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5ub2RlVHJlZVNlcnZpY2UuYWRkTm9kZShub2RlLml0ZW0sIG51bGwpKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGFDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRGF0YXNvdXJjZUNoYW5nZShkYXRhKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50Rm9sZGVySWQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoaWQpID0+IHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgY29uc3QgeyBBc3NldElkOiByb290SWQgfSA9IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnJvb3RGb2xkZXIgfHwgeyBBc3NldElkOiBudWxsIH07XG4gICAgICAgICAgdGhpcy5pc1Jvb3QgPSByb290SWQgJiYgaWQgPT09IHJvb3RJZDtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9IGlkO1xuICAgICAgICAgIGF3YWl0IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnVwZGF0ZUJyZWFkY3J1bWIoaWQpO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLnJlbG9hZEN1cnJlbnRGb2xkZXIpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IG9mKHJlcykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVSZWxvYWRGb2xkZXIodGhpcy5jdXJyZW50Rm9sZGVySWQpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEYXRhc291cmNlQ2hhbmdlKGRhdGE6IER5bmFtaWNGbGF0Tm9kZVtdID0gW10pIHtcbiAgICBpZiAoIWRhdGEgfHwgIWRhdGEubGVuZ3RoKSByZXR1cm47XG5cbiAgICBjb25zdCBtYXBzID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIER5bmFtaWNGbGF0Tm9kZT4+KCk7XG4gICAgbWFwcy5zZXQoUk9PVF9BU1NFVF9JRCwgbmV3IE1hcCgpKTtcblxuICAgIGRhdGEuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZUlkID0gbm9kZS5pdGVtLkFzc2V0SWQ7XG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmdldFBhcmVudChub2RlKTtcbiAgICAgIGNvbnN0IHBhcmVudElkID0gcGFyZW50ID8gcGFyZW50Lml0ZW0uQXNzZXRJZCA6IFJPT1RfQVNTRVRfSUQ7XG5cbiAgICAgIGlmICghbWFwcy5oYXMocGFyZW50SWQpKSB7XG4gICAgICAgIG1hcHMuc2V0KHBhcmVudElkLCBuZXcgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICBtYXBzLmdldChwYXJlbnRJZCkuc2V0KG5vZGVJZCwgbm9kZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvbGRlckNoaWxkcmVuTWFwID0gbWFwcztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWxlY3ROb2RlKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSkge1xuICAgIGNvbnN0IHsgQXNzZXRJZDogaWQgfSA9IG5vZGUuaXRlbTtcbiAgICBpZiAoaWQgPT09IHRoaXMuY3VycmVudEZvbGRlcklkKSB7XG4gICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX05PREUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSUQsXG4gICAgICAgIHBheWxvYWQ6IGlkLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVsb2FkRm9sZGVyKGlkKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrVG9Ib21lKCkge1xuICAgIHRoaXMuaW5pdGlhbERhdGEoKTtcbiAgICBjb25zdCB7IEFzc2V0SWQ6IHJvb3RJZCB9ID0gdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlcjtcbiAgICBpZiAodGhpcy5jdXJyZW50Rm9sZGVySWQgPT09IHJvb3RJZCkge1xuICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9OT0RFLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWRNb3JlRm9sZGVyKG5vZGU/OiBhbnkpIHtcbiAgICBjb25zdCBpZCA9IG5vZGUgPyBub2RlLml0ZW0uQXNzZXRJZCA6IFJPT1RfQVNTRVRfSUQ7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2V0TG9hZGluZ01vcmUoaWQsIHRydWUpO1xuXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZm9sZGVyQ2hpbGRyZW5NYXAuZ2V0KGlkKTtcbiAgICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSA9IHRoaXMuYXNzZXRTZXJ2aWNlLkFNQ29uZmlnLnBhZ2VGb2xkZXJTaXplIHx8IE1BWF9GT0xERVJfVFJFRV9TSVpFO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hc3NldFNlcnZpY2VcbiAgICAgICAgLmdldENoaWxkcmVuRm9sZGVycyh7XG4gICAgICAgICAgYXNzZXRJZDogaWQgPT09IFJPT1RfQVNTRVRfSUQgPyBudWxsIDogaWQsXG4gICAgICAgICAgaXNGaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgIHBhZ2VJbmRleDogTWF0aC5yb3VuZCgoY2hpbGRyZW4gPyBjaGlsZHJlbi5zaXplIDogMCkgLyBpdGVtc1BlclBhZ2UpLFxuICAgICAgICB9KVxuICAgICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICAgIGNvbnN0IGFzc2V0Q2hpbGRyZW4gPSByZXN1bHQuRGF0YS5DaGlsZHJlbiB8fCBbXTtcblxuICAgICAgLy8gSGFuZGxlIGRhdGFzb3VyY2VcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5kYXRhU291cmNlLmRhdGEuaW5kZXhPZihub2RlKTtcbiAgICAgIGNvbnN0IG5vZGVzID0gYXNzZXRDaGlsZHJlbi5tYXAoKGZvbGRlcikgPT4ge1xuICAgICAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5hZGROb2RlKGZvbGRlciwgaWQpO1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlVHJlZVNlcnZpY2UuZ2V0RHluYW1pY0ZsYXROb2RlKGZvbGRlciwgbm9kZSA/IG5vZGUubGV2ZWwgKyAxIDogMCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGlkICE9PSBST09UX0FTU0VUX0lEKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gdGhpcy5kYXRhU291cmNlLmRhdGEuc2xpY2UoKTtcbiAgICAgICAgdXBkYXRlZERhdGEuc3BsaWNlKGluZGV4ICsgMSwgMCwgLi4ubm9kZXMpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHVwZGF0ZWREYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGEsIC4uLm5vZGVzXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0TG9hZGluZ01vcmUoaWQsIGZhbHNlKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkxvYWQgbW9yZSBmb2xkZXIgZXJyb3JcIiwgZXJyb3IpO1xuICAgICAgdGhpcy5zZXRMb2FkaW5nTW9yZShpZCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrZWQobm9kZTogRHluYW1pY0ZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEZvbGRlcklkICYmIHRoaXMuY3VycmVudEZvbGRlcklkID09PSBub2RlLml0ZW0uQXNzZXRJZDtcbiAgfVxuXG4gIGRpc2FibGVkKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XG4gIH1cblxuICBnZXRMZXZlbCA9IChub2RlOiBEeW5hbWljRmxhdE5vZGUpID0+IG5vZGUubGV2ZWw7XG5cbiAgaXNFeHBhbmRhYmxlID0gKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xuXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBEeW5hbWljRmxhdE5vZGUpID0+IF9ub2RlRGF0YS5leHBhbmRhYmxlO1xuXG4gIGdldFBhcmVudChub2RlOiBEeW5hbWljRmxhdE5vZGUpOiBEeW5hbWljRmxhdE5vZGUge1xuICAgIGNvbnN0IGN1cnJlbnRMZXZlbCA9IHRoaXMuZ2V0TGV2ZWwobm9kZSk7XG5cbiAgICBpZiAoY3VycmVudExldmVsIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmluZGV4T2Yobm9kZSkgLSAxO1xuXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBjdXJyZW50Tm9kZSA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhW2ldO1xuICAgICAgaWYgKHRoaXMuZ2V0TGV2ZWwoY3VycmVudE5vZGUpIDwgY3VycmVudExldmVsKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXROb2RlQnlJZChpZDogc3RyaW5nKTogRHluYW1pY0ZsYXROb2RlIHtcbiAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5pdGVtLkFzc2V0SWQgPT09IGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUmVsb2FkRm9sZGVyKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAoIWlkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGVCeUlkKGlkKTtcblxuICAgIGlmIChub2RlKSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmdldFBhcmVudChub2RlKTtcbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgLy8gUmVsb2FkIHBhcmVudCBmb2xkZXIgKGdldCBjaGlsZHJlbiBhbmQgZXhwYW5kIGl0IGFnYWluKVxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZm9sZGVyQ2hpbGRyZW5NYXAuZ2V0KHBhcmVudC5pdGVtLkFzc2V0SWQpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2UucmVsb2FkTm9kZShwYXJlbnQsIGNoaWxkcmVuLnNpemUpO1xuICAgICAgICBjb25zdCB1cGRhdGVkTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5SWQoaWQpO1xuICAgICAgICBpZiAodXBkYXRlZE5vZGUpIHtcbiAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodXBkYXRlZE5vZGUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByb290Rm9sZGVyID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQoUk9PVF9BU1NFVF9JRCk7XG4gICAgICAgIGF3YWl0IHRoaXMubm9kZVRyZWVTZXJ2aWNlLmluaXRpYWxEYXRhKHsgZGlzcGF0Y2hSb290SWQ6IGZhbHNlLCBwYWdlU2l6ZTogcm9vdEZvbGRlci5zaXplIH0pO1xuICAgICAgICBjb25zdCB1cGRhdGVkTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5SWQoaWQpO1xuICAgICAgICBpZiAodXBkYXRlZE5vZGUpIHtcbiAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodXBkYXRlZE5vZGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbG9hZCByb290IGZvbGRlclxuICAgICAgYXdhaXQgdGhpcy5ub2RlVHJlZVNlcnZpY2UuaW5pdGlhbERhdGEoeyBkaXNwYXRjaFJvb3RJZDogZmFsc2UgfSk7XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMb2FkaW5nTW9yZShpZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubG9hZGluZ01vcmVMaXN0W2lkXSA9IHZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbXTtcbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5kYXRhID0gW107XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -121,11 +121,16 @@ var SearchBoxComponent = /** @class */ (function () {
|
|
|
121
121
|
* @return {?}
|
|
122
122
|
*/
|
|
123
123
|
function (_a) {
|
|
124
|
-
var _b = tslib_1.__read(_a, 2), folders = _b[0],
|
|
124
|
+
var _b = tslib_1.__read(_a, 2), folders = _b[0], assetsRes = _b[1];
|
|
125
|
+
/** @type {?} */
|
|
126
|
+
var pagination = assetsRes && assetsRes.Meta || {};
|
|
127
|
+
/** @type {?} */
|
|
128
|
+
var assets = assetsRes && assetsRes.Data && assetsRes.Data.Children || [];
|
|
129
|
+
/** @type {?} */
|
|
130
|
+
var totalFile = assetsRes && assetsRes.Data && assetsRes.Data.TotalFile || 0;
|
|
125
131
|
_this.assetService.setFolderList(folders.Data, { Total: folders.Data.TotalFolder });
|
|
126
|
-
_this.assetService.setAssetList(assets
|
|
127
|
-
}))
|
|
128
|
-
.add((/**
|
|
132
|
+
_this.assetService.setAssetList(assets, pagination, totalFile);
|
|
133
|
+
})).add((/**
|
|
129
134
|
* @return {?}
|
|
130
135
|
*/
|
|
131
136
|
function () {
|
|
@@ -181,4 +186,4 @@ if (false) {
|
|
|
181
186
|
*/
|
|
182
187
|
SearchBoxComponent.prototype.svc;
|
|
183
188
|
}
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQ7SUFTRSw0QkFDUyxZQUEwQixFQUN6QixHQUEyQjtRQUQ1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUw3QixhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNWLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFLcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQzs7OztJQUVELHFDQUFROzs7SUFBUixjQUFZLENBQUM7Ozs7O0lBRUwsOENBQWlCOzs7O0lBQXpCO1FBQUEsaUJBT0M7UUFOQyxNQUFNOzs7O1FBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFLLENBQUMsZUFBZSxFQUFy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Rzs7O1FBQUM7WUFDTCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0I7Z0JBQ3BDLE9BQU8sRUFBRSxLQUFLO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7O0lBRUQsd0NBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2dCQWxGRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsK2ZBQTBDOztpQkFFM0M7Ozs7Z0JBUFEsWUFBWTtnQkFEWixzQkFBc0I7O0lBdUYvQix5QkFBQztDQUFBLEFBbkZELElBbUZDO1NBOUVZLGtCQUFrQjs7Ozs7O0lBQzdCLHNDQUFtRDs7SUFDbkQsbUNBQWtCOzs7OztJQUNsQixzQ0FBc0I7O0lBRXBCLDBDQUFpQzs7Ozs7SUFDakMsaUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb21iaW5lTGF0ZXN0JztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL1N1YmplY3QnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBc3NldE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXNzZXQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fzc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZXMsIHNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNlYXJjaC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1ib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHZhbHVlID0gJyc7XG4gIHByaXZhdGUgZm9sZGVySWQgPSAnJztcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFzc2V0U2VydmljZTogQXNzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3ZjOiBBc3NldE1hbmFnZW1lbnRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYmluZGluZ1N1YnNjcmliZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICBwcml2YXRlIGJpbmRpbmdTdWJzY3JpYmVyKCkge1xuICAgIHNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5jdXJyZW50Rm9sZGVySWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICBzd2l0Y2hNYXAocmVzID0+IG9mKHJlcykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGN1cnJlbnRGb2xkZXJJZCA9PiAodGhpcy5mb2xkZXJJZCA9IGN1cnJlbnRGb2xkZXJJZCkpO1xuICB9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy52YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gIH1cblxuICBvblN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUgJiYgIXRoaXMuYXNzZXRTZXJ2aWNlLmtleXdvcmQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hc3NldFNlcnZpY2Uua2V5d29yZCA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hCeU5hbWUoKTtcbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCkge1xuICAgIGlmICghdGhpcy5hc3NldFNlcnZpY2Uua2V5d29yZCkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLmFzc2V0U2VydmljZS5rZXl3b3JkID0gJyc7XG4gICAgdGhpcy5zZWFyY2hCeU5hbWUoKTtcbiAgICB0aGlzLmFzc2V0U2VydmljZS5zZXRGb2xkZXJMaXN0KG51bGwpO1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnNldEFzc2V0TGlzdChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoQnlOYW1lKCkge1xuICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9HTE9CQUxfTE9BRElORyxcbiAgICAgIHBheWxvYWQ6IHRydWUsXG4gICAgfSk7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmFzc2V0U2VydmljZS5nZXRDaGlsZHJlbkZvbGRlcnMoeyBhc3NldElkOiB0aGlzLmZvbGRlcklkIH0pLFxuICAgICAgdGhpcy5hc3NldFNlcnZpY2UuZ2V0Q2hpbGRyZW5Bc3NldHMoe1xuICAgICAgICBhc3NldElkOiB0aGlzLmZvbGRlcklkLFxuICAgICAgICBwYWdlSW5kZXg6ICcwJyxcbiAgICAgIH0pLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChbZm9sZGVycywgYXNzZXRzUmVzXSkgPT4ge1xuICAgICAgICBjb25zdCBwYWdpbmF0aW9uID0gYXNzZXRzUmVzICYmIGFzc2V0c1Jlcy5NZXRhIHx8IHt9O1xuICAgICAgICBjb25zdCBhc3NldHMgPSBhc3NldHNSZXMgJiYgYXNzZXRzUmVzLkRhdGEgJiYgYXNzZXRzUmVzLkRhdGEuQ2hpbGRyZW4gfHwgW107XG4gICAgICAgIGNvbnN0IHRvdGFsRmlsZSA9IGFzc2V0c1JlcyAmJiBhc3NldHNSZXMuRGF0YSAmJiBhc3NldHNSZXMuRGF0YS5Ub3RhbEZpbGUgfHwgMDtcbiAgICAgICAgdGhpcy5hc3NldFNlcnZpY2Uuc2V0Rm9sZGVyTGlzdChmb2xkZXJzLkRhdGEsIHsgVG90YWw6IGZvbGRlcnMuRGF0YS5Ub3RhbEZvbGRlciB9KTtcbiAgICAgICAgdGhpcy5hc3NldFNlcnZpY2Uuc2V0QXNzZXRMaXN0KGFzc2V0cywgcGFnaW5hdGlvbiwgdG90YWxGaWxlKTtcbiAgICAgIH0pLmFkZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -18,7 +18,7 @@ var ModalComponent = /** @class */ (function () {
|
|
|
18
18
|
{ type: Component, args: [{
|
|
19
19
|
selector: 'lib-modal',
|
|
20
20
|
template: "<h4 mat-dialog-title *ngIf=\"!customHeader; else customHeaderTemplate\">\n <div class=\"lib-modal--title\" [title]=\"heading\">\n {{ heading }}\n </div>\n <div class=\"lib-modal--close\">\n <mat-icon mat-dialog-close>close</mat-icon>\n </div>\n</h4>\n<ng-template #customHeaderTemplate>\n <h4 mat-dialog-title>\n <div class=\"lib-modal--custom-title\">\n <span>\n {{ heading }}\n </span>\n <div class=\"lib-modal--custom-subtitle\">\n <ng-content select=\"[subtitle]\"></ng-content>\n </div>\n </div>\n <div class=\"lib-modal--header-actions\">\n <ng-content select=\"[headerActions]\"></ng-content>\n </div>\n <mat-icon mat-dialog-close class=\"mat-dialog-close\">close</mat-icon>\n </h4>\n</ng-template>\n<mat-dialog-content class=\"custom-scrollbar\">\n <ng-content select=\"[content]\"></ng-content>\n</mat-dialog-content>\n<mat-dialog-actions>\n <ng-content select=\"[actions]\"></ng-content>\n</mat-dialog-actions>\n",
|
|
21
|
-
styles: [":host::ng-deep{display:flex;flex-direction:column;min-height:150px;position:relative}:host::ng-deep .mat-dialog-title{padding-bottom:24px;margin:0;display:flex;justify-content:space-between;font-size:24px;line-height:1;gap:10px}:host::ng-deep .mat-dialog-title mat-icon{cursor:pointer}:host::ng-deep .lib-modal--custom-title,:host::ng-deep .lib-modal--title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .lib-modal--custom-subtitle{margin-top:5px}:host::ng-deep .lib-modal--header-actions{display:flex;align-items:center;gap:10px}:host::ng-deep mat-dialog-content{flex:1;padding:0 24px}:host::ng-deep mat-dialog-actions{padding-top:24px;padding-bottom:0;display:flex;justify-content:flex-end;min-height:auto;margin-bottom:0}:host::ng-deep mat-dialog-actions .mat-button-base+.mat-button-base{margin-left:20px}:host::ng-deep .mat-error{margin-top:5px;font-size:14px}:host::ng-deep .no-wrap{white-space:nowrap}:host::ng-deep input,:host::ng-deep textarea{width:100%;padding:10px;border:1px solid #d8d8d8;border-radius:5px;color:#000;margin-top:0;resize:none}::ng-deep .lib-dialog--small{width:400px!important}::ng-deep .lib-dialog--small .file__name{word-break:break-word}::ng-deep .lib-dialog--small .mat-button-base{min-width:70px}::ng-deep .lib-dialog--small .loading{padding:0 5px}::ng-deep .lib-dialog--small .loading .mat-button-wrapper{display:flex;width:100%;justify-content:center;align-items:center}::ng-deep .lib-dialog--small .loading .mat-spinner{margin-right:10px}::ng-deep .lib-dialog--medium{max-width:1200px!important;width:90%!important}::ng-deep .lib-dialog--medium .mat-dialog-content{border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;overflow-x:hidden}::ng-deep .lib-dialog--large{max-width:1200px!important;width:90vw!important}::ng-deep .lib-dialog--large .mat-dialog-title{padding-bottom:12px;position:relative}::ng-deep .lib-dialog--large .mat-dialog-title .mat-dialog-close{position:absolute;right:-22px;top:-22px}::ng-deep .lib-dialog--large .mat-dialog-content{min-height:70vh;border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;padding:0}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .asset-list__item{min-width:25%!important}@media only screen and (max-width:768px){::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:none!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:-
|
|
21
|
+
styles: [":host::ng-deep{display:flex;flex-direction:column;min-height:150px;position:relative}:host::ng-deep .mat-dialog-title{padding-bottom:24px;margin:0;display:flex;justify-content:space-between;font-size:24px;line-height:1;gap:10px}:host::ng-deep .mat-dialog-title mat-icon{cursor:pointer}:host::ng-deep .lib-modal--custom-title,:host::ng-deep .lib-modal--title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .lib-modal--custom-subtitle{margin-top:5px}:host::ng-deep .lib-modal--header-actions{display:flex;align-items:center;gap:10px}:host::ng-deep mat-dialog-content{flex:1;padding:0 24px}:host::ng-deep mat-dialog-actions{padding-top:24px;padding-bottom:0;display:flex;justify-content:flex-end;min-height:auto;margin-bottom:0}:host::ng-deep mat-dialog-actions .mat-button-base+.mat-button-base{margin-left:20px}:host::ng-deep .mat-error{margin-top:5px;font-size:14px}:host::ng-deep .no-wrap{white-space:nowrap}:host::ng-deep input,:host::ng-deep textarea{width:100%;padding:10px;border:1px solid #d8d8d8;border-radius:5px;color:#000;margin-top:0;resize:none}::ng-deep .lib-dialog--small{width:400px!important}::ng-deep .lib-dialog--small .file__name{word-break:break-word}::ng-deep .lib-dialog--small .mat-button-base{min-width:70px}::ng-deep .lib-dialog--small .loading{padding:0 5px}::ng-deep .lib-dialog--small .loading .mat-button-wrapper{display:flex;width:100%;justify-content:center;align-items:center}::ng-deep .lib-dialog--small .loading .mat-spinner{margin-right:10px}::ng-deep .lib-dialog--medium{max-width:1200px!important;width:90%!important}::ng-deep .lib-dialog--medium .mat-dialog-content{border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;overflow-x:hidden}::ng-deep .lib-dialog--large{max-width:1200px!important;width:90vw!important}::ng-deep .lib-dialog--large .mat-dialog-title{padding-bottom:12px;position:relative}::ng-deep .lib-dialog--large .mat-dialog-title .mat-dialog-close{position:absolute;right:-22px;top:-22px}::ng-deep .lib-dialog--large .mat-dialog-content{min-height:70vh;border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;padding:0}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .asset-list__item{min-width:25%!important}@media only screen and (max-width:768px){::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:none!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:-moz-max-content!important;height:max-content!important}}::ng-deep .lib-dialog--large .mat-dialog-actions{padding:12px 0;margin-bottom:-24px!important}"]
|
|
22
22
|
}] }
|
|
23
23
|
];
|
|
24
24
|
/** @nocollapse */
|