UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

158 lines 18.3 kB
import { __decorate, __metadata } from "tslib"; import { Pipe } from '@angular/core'; import { cloneArray } from '../../core/utils'; import { DataUtil } from '../../data-operations/data-util'; import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree'; import { GridBaseAPIService } from '../api.service'; /** *@hidden */ var IgxGridSortingPipe = /** @class */ (function () { function IgxGridSortingPipe(gridAPI) { this.gridAPI = gridAPI; } IgxGridSortingPipe.prototype.transform = function (collection, expressions, sorting, id, pipeTrigger) { var grid = this.gridAPI.grid; var result; if (!expressions.length) { result = collection; } else { result = DataUtil.sort(cloneArray(collection), expressions, sorting); } grid.filteredSortedData = result; return result; }; IgxGridSortingPipe.ctorParameters = function () { return [ { type: GridBaseAPIService } ]; }; IgxGridSortingPipe = __decorate([ Pipe({ name: 'gridSort', pure: true }), __metadata("design:paramtypes", [GridBaseAPIService]) ], IgxGridSortingPipe); return IgxGridSortingPipe; }()); export { IgxGridSortingPipe }; /** *@hidden */ var IgxGridGroupingPipe = /** @class */ (function () { function IgxGridGroupingPipe(gridAPI) { this.gridAPI = gridAPI; } IgxGridGroupingPipe.prototype.transform = function (collection, expression, expansion, defaultExpanded, id, groupsRecords, pipeTrigger) { var state = { expressions: [], expansion: [], defaultExpanded: defaultExpanded }; var grid = this.gridAPI.grid; state.expressions = grid.groupingExpressions; var result; var fullResult = { data: [], metadata: [] }; if (!state.expressions.length) { // empty the array without changing reference groupsRecords.splice(0, groupsRecords.length); result = { data: collection, metadata: collection }; } else { state.expansion = grid.groupingExpansionState; state.defaultExpanded = grid.groupsExpanded; result = DataUtil.group(cloneArray(collection), state, grid, groupsRecords, fullResult); } grid.groupingFlatResult = result.data; grid.groupingResult = fullResult.data; grid.groupingMetadata = fullResult.metadata; return result; }; IgxGridGroupingPipe.ctorParameters = function () { return [ { type: GridBaseAPIService } ]; }; IgxGridGroupingPipe = __decorate([ Pipe({ name: 'gridGroupBy', pure: true }), __metadata("design:paramtypes", [GridBaseAPIService]) ], IgxGridGroupingPipe); return IgxGridGroupingPipe; }()); export { IgxGridGroupingPipe }; /** *@hidden */ var IgxGridPagingPipe = /** @class */ (function () { function IgxGridPagingPipe(gridAPI) { this.gridAPI = gridAPI; } IgxGridPagingPipe.prototype.transform = function (collection, page, perPage, id, pipeTrigger) { if (page === void 0) { page = 0; } if (perPage === void 0) { perPage = 15; } if (!this.gridAPI.grid.paging) { return collection; } var state = { index: page, recordsPerPage: perPage }; DataUtil.correctPagingState(state, collection.data.length); var result = { data: DataUtil.page(cloneArray(collection.data), state), metadata: DataUtil.page(cloneArray(collection.metadata), state) }; if (this.gridAPI.grid.page !== state.index) { this.gridAPI.grid.page = state.index; } this.gridAPI.grid.pagingState = state; return result; }; IgxGridPagingPipe.ctorParameters = function () { return [ { type: GridBaseAPIService } ]; }; IgxGridPagingPipe = __decorate([ Pipe({ name: 'gridPaging', pure: true }), __metadata("design:paramtypes", [GridBaseAPIService]) ], IgxGridPagingPipe); return IgxGridPagingPipe; }()); export { IgxGridPagingPipe }; /** *@hidden */ var IgxGridFilteringPipe = /** @class */ (function () { function IgxGridFilteringPipe(gridAPI) { this.gridAPI = gridAPI; } IgxGridFilteringPipe.prototype.transform = function (collection, expressionsTree, filterStrategy, advancedExpressionsTree, id, pipeTrigger) { var grid = this.gridAPI.grid; var state = { expressionsTree: expressionsTree, strategy: filterStrategy, advancedExpressionsTree: advancedExpressionsTree }; if (FilteringExpressionsTree.empty(state.expressionsTree) && FilteringExpressionsTree.empty(state.advancedExpressionsTree)) { return collection; } var result = DataUtil.filter(cloneArray(collection), state); grid.filteredData = result; return result; }; IgxGridFilteringPipe.ctorParameters = function () { return [ { type: GridBaseAPIService } ]; }; IgxGridFilteringPipe = __decorate([ Pipe({ name: 'gridFiltering', pure: true }), __metadata("design:paramtypes", [GridBaseAPIService]) ], IgxGridFilteringPipe); return IgxGridFilteringPipe; }()); export { IgxGridFilteringPipe }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lnbml0ZXVpLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZ3JpZHMvZ3JpZC9ncmlkLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNELE9BQU8sRUFBNkIsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUt2SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1wRDs7R0FFRztBQUtIO0lBR0ksNEJBQVksT0FBNEQ7UUFDcEUsSUFBSSxDQUFDLE9BQU8sR0FBc0IsT0FBTyxDQUFDO0lBQzlDLENBQUM7SUFFTSxzQ0FBUyxHQUFoQixVQUFpQixVQUFpQixFQUFFLFdBQWlDLEVBQUUsT0FBNkIsRUFDbkYsRUFBVSxFQUFFLFdBQW1CO1FBQzVDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksTUFBYSxDQUFDO1FBRWxCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE1BQU0sR0FBRyxVQUFVLENBQUM7U0FDdkI7YUFBTTtZQUNILE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDeEU7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDO1FBRWpDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O2dCQWpCb0Isa0JBQWtCOztJQUg5QixrQkFBa0I7UUFKOUIsSUFBSSxDQUFDO1lBQ0YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDO3lDQUl1QixrQkFBa0I7T0FIOUIsa0JBQWtCLENBcUI5QjtJQUFELHlCQUFDO0NBQUEsQUFyQkQsSUFxQkM7U0FyQlksa0JBQWtCO0FBdUIvQjs7R0FFRztBQUtIO0lBR0ksNkJBQVksT0FBNEQ7UUFDcEUsSUFBSSxDQUFDLE9BQU8sR0FBc0IsT0FBTyxDQUFDO0lBQzlDLENBQUM7SUFFTSx1Q0FBUyxHQUFoQixVQUFpQixVQUFpQixFQUFFLFVBQXVELEVBQ3ZGLFNBQXNELEVBQUUsZUFBd0IsRUFDaEYsRUFBVSxFQUFFLGFBQW9CLEVBQUUsV0FBbUI7UUFFckQsSUFBTSxLQUFLLEdBQUcsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsZUFBZSxpQkFBQSxFQUFFLENBQUM7UUFDbEUsSUFBTSxJQUFJLEdBQXFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2pELEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQzdDLElBQUksTUFBc0IsQ0FBQztRQUMzQixJQUFNLFVBQVUsR0FBbUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUU5RCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsNkNBQTZDO1lBQzdDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxNQUFNLEdBQUc7Z0JBQ0wsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFFBQVEsRUFBRSxVQUFVO2FBQ3ZCLENBQUM7U0FDTDthQUFNO1lBQ0gsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDOUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzVDLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMzRjtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOztnQkE5Qm9CLGtCQUFrQjs7SUFIOUIsbUJBQW1CO1FBSi9CLElBQUksQ0FBQztZQUNGLElBQUksRUFBRSxhQUFhO1lBQ25CLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQzt5Q0FJdUIsa0JBQWtCO09BSDlCLG1CQUFtQixDQWtDL0I7SUFBRCwwQkFBQztDQUFBLEFBbENELElBa0NDO1NBbENZLG1CQUFtQjtBQW9DaEM7O0dBRUc7QUFLSDtJQUVJLDJCQUFvQixPQUE0RDtRQUE1RCxZQUFPLEdBQVAsT0FBTyxDQUFxRDtJQUFJLENBQUM7SUFFOUUscUNBQVMsR0FBaEIsVUFBaUIsVUFBMEIsRUFBRSxJQUFRLEVBQUUsT0FBWSxFQUFFLEVBQVUsRUFBRSxXQUFtQjtRQUF2RCxxQkFBQSxFQUFBLFFBQVE7UUFBRSx3QkFBQSxFQUFBLFlBQVk7UUFFL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMzQixPQUFPLFVBQVUsQ0FBQztTQUNyQjtRQUVELElBQU0sS0FBSyxHQUFHO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxjQUFjLEVBQUUsT0FBTztTQUMxQixDQUFDO1FBQ0YsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNELElBQU0sTUFBTSxHQUFHO1lBQ1gsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDdkQsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7U0FDbEUsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDeEM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O2dCQXZCNEIsa0JBQWtCOztJQUZ0QyxpQkFBaUI7UUFKN0IsSUFBSSxDQUFDO1lBQ0YsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDO3lDQUcrQixrQkFBa0I7T0FGdEMsaUJBQWlCLENBMEI3QjtJQUFELHdCQUFDO0NBQUEsQUExQkQsSUEwQkM7U0ExQlksaUJBQWlCO0FBNEI5Qjs7R0FFRztBQUtIO0lBRUksOEJBQW9CLE9BQTREO1FBQTVELFlBQU8sR0FBUCxPQUFPLENBQXFEO0lBQUksQ0FBQztJQUU5RSx3Q0FBUyxHQUFoQixVQUFpQixVQUFpQixFQUFFLGVBQTBDLEVBQzFFLGNBQWtDLEVBQ2xDLHVCQUFrRCxFQUFFLEVBQVUsRUFBRSxXQUFtQjtRQUNuRixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMvQixJQUFNLEtBQUssR0FBRztZQUNWLGVBQWUsRUFBRSxlQUFlO1lBQ2hDLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLHVCQUF1QixFQUFFLHVCQUF1QjtTQUNuRCxDQUFDO1FBRUYsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUN4SCxPQUFPLFVBQVUsQ0FBQztTQUNyQjtRQUVELElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O2dCQW5CNEIsa0JBQWtCOztJQUZ0QyxvQkFBb0I7UUFKaEMsSUFBSSxDQUFDO1lBQ0YsSUFBSSxFQUFFLGVBQWU7WUFDckIsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDO3lDQUcrQixrQkFBa0I7T0FGdEMsb0JBQW9CLENBc0JoQztJQUFELDJCQUFDO0NBQUEsQUF0QkQsSUFzQkM7U0F0Qlksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgRGF0YVV0aWwgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7IElHcm91cEJ5RXhwYW5kU3RhdGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1leHBhbmQtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cEJ5UmVzdWx0IH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLXJlc3VsdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9ucy10cmVlJztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEdyaWRBUElTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IElneEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZEJhc2VBUElTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4R3JpZEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9ncmlkLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyaWRUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUdyaWRTb3J0aW5nU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5cbi8qKlxuICpAaGlkZGVuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnZ3JpZFNvcnQnLFxuICAgIHB1cmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZFNvcnRpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBncmlkQVBJOiBJZ3hHcmlkQVBJU2VydmljZTtcblxuICAgIGNvbnN0cnVjdG9yKGdyaWRBUEk6IEdyaWRCYXNlQVBJU2VydmljZTxJZ3hHcmlkQmFzZURpcmVjdGl2ZSAmIEdyaWRUeXBlPikge1xuICAgICAgICB0aGlzLmdyaWRBUEkgPSA8SWd4R3JpZEFQSVNlcnZpY2U+Z3JpZEFQSTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGNvbGxlY3Rpb246IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10sIHNvcnRpbmc6IElHcmlkU29ydGluZ1N0cmF0ZWd5LFxuICAgICAgICAgICAgICAgICAgICAgaWQ6IHN0cmluZywgcGlwZVRyaWdnZXI6IG51bWJlcik6IGFueVtdIHtcbiAgICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZEFQSS5ncmlkO1xuICAgICAgICBsZXQgcmVzdWx0OiBhbnlbXTtcblxuICAgICAgICBpZiAoIWV4cHJlc3Npb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gY29sbGVjdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IERhdGFVdGlsLnNvcnQoY2xvbmVBcnJheShjb2xsZWN0aW9uKSwgZXhwcmVzc2lvbnMsIHNvcnRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGdyaWQuZmlsdGVyZWRTb3J0ZWREYXRhID0gcmVzdWx0O1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuXG4vKipcbiAqQGhpZGRlblxuICovXG5AUGlwZSh7XG4gICAgbmFtZTogJ2dyaWRHcm91cEJ5JyxcbiAgICBwdXJlOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRHcm91cGluZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBwcml2YXRlIGdyaWRBUEk6IElneEdyaWRBUElTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoZ3JpZEFQSTogR3JpZEJhc2VBUElTZXJ2aWNlPElneEdyaWRCYXNlRGlyZWN0aXZlICYgR3JpZFR5cGU+KSB7XG4gICAgICAgIHRoaXMuZ3JpZEFQSSA9IDxJZ3hHcmlkQVBJU2VydmljZT5ncmlkQVBJO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oY29sbGVjdGlvbjogYW55W10sIGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBJR3JvdXBpbmdFeHByZXNzaW9uW10sXG4gICAgICAgIGV4cGFuc2lvbjogSUdyb3VwQnlFeHBhbmRTdGF0ZSB8IElHcm91cEJ5RXhwYW5kU3RhdGVbXSwgZGVmYXVsdEV4cGFuZGVkOiBib29sZWFuLFxuICAgICAgICBpZDogc3RyaW5nLCBncm91cHNSZWNvcmRzOiBhbnlbXSwgcGlwZVRyaWdnZXI6IG51bWJlcik6IElHcm91cEJ5UmVzdWx0IHtcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHsgZXhwcmVzc2lvbnM6IFtdLCBleHBhbnNpb246IFtdLCBkZWZhdWx0RXhwYW5kZWQgfTtcbiAgICAgICAgY29uc3QgZ3JpZDogSWd4R3JpZENvbXBvbmVudCA9IHRoaXMuZ3JpZEFQSS5ncmlkO1xuICAgICAgICBzdGF0ZS5leHByZXNzaW9ucyA9IGdyaWQuZ3JvdXBpbmdFeHByZXNzaW9ucztcbiAgICAgICAgbGV0IHJlc3VsdDogSUdyb3VwQnlSZXN1bHQ7XG4gICAgICAgIGNvbnN0IGZ1bGxSZXN1bHQ6IElHcm91cEJ5UmVzdWx0ID0geyBkYXRhOiBbXSwgbWV0YWRhdGE6IFtdIH07XG5cbiAgICAgICAgaWYgKCFzdGF0ZS5leHByZXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGVtcHR5IHRoZSBhcnJheSB3aXRob3V0IGNoYW5naW5nIHJlZmVyZW5jZVxuICAgICAgICAgICAgZ3JvdXBzUmVjb3Jkcy5zcGxpY2UoMCwgZ3JvdXBzUmVjb3Jkcy5sZW5ndGgpO1xuICAgICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgICAgIGRhdGE6IGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgbWV0YWRhdGE6IGNvbGxlY3Rpb25cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS5leHBhbnNpb24gPSBncmlkLmdyb3VwaW5nRXhwYW5zaW9uU3RhdGU7XG4gICAgICAgICAgICBzdGF0ZS5kZWZhdWx0RXhwYW5kZWQgPSBncmlkLmdyb3Vwc0V4cGFuZGVkO1xuICAgICAgICAgICAgcmVzdWx0ID0gRGF0YVV0aWwuZ3JvdXAoY2xvbmVBcnJheShjb2xsZWN0aW9uKSwgc3RhdGUsIGdyaWQsIGdyb3Vwc1JlY29yZHMsIGZ1bGxSZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGdyaWQuZ3JvdXBpbmdGbGF0UmVzdWx0ID0gcmVzdWx0LmRhdGE7XG4gICAgICAgIGdyaWQuZ3JvdXBpbmdSZXN1bHQgPSBmdWxsUmVzdWx0LmRhdGE7XG4gICAgICAgIGdyaWQuZ3JvdXBpbmdNZXRhZGF0YSA9IGZ1bGxSZXN1bHQubWV0YWRhdGE7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuXG4vKipcbiAqQGhpZGRlblxuICovXG5AUGlwZSh7XG4gICAgbmFtZTogJ2dyaWRQYWdpbmcnLFxuICAgIHB1cmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZFBhZ2luZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JpZEFQSTogR3JpZEJhc2VBUElTZXJ2aWNlPElneEdyaWRCYXNlRGlyZWN0aXZlICYgR3JpZFR5cGU+KSB7IH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oY29sbGVjdGlvbjogSUdyb3VwQnlSZXN1bHQsIHBhZ2UgPSAwLCBwZXJQYWdlID0gMTUsIGlkOiBzdHJpbmcsIHBpcGVUcmlnZ2VyOiBudW1iZXIpOiBJR3JvdXBCeVJlc3VsdCB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmdyaWRBUEkuZ3JpZC5wYWdpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgICAgICBpbmRleDogcGFnZSxcbiAgICAgICAgICAgIHJlY29yZHNQZXJQYWdlOiBwZXJQYWdlXG4gICAgICAgIH07XG4gICAgICAgIERhdGFVdGlsLmNvcnJlY3RQYWdpbmdTdGF0ZShzdGF0ZSwgY29sbGVjdGlvbi5kYXRhLmxlbmd0aCk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgICAgZGF0YTogRGF0YVV0aWwucGFnZShjbG9uZUFycmF5KGNvbGxlY3Rpb24uZGF0YSksIHN0YXRlKSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiBEYXRhVXRpbC5wYWdlKGNsb25lQXJyYXkoY29sbGVjdGlvbi5tZXRhZGF0YSksIHN0YXRlKVxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5ncmlkQVBJLmdyaWQucGFnZSAhPT0gc3RhdGUuaW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZEFQSS5ncmlkLnBhZ2UgPSBzdGF0ZS5pbmRleDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWRBUEkuZ3JpZC5wYWdpbmdTdGF0ZSA9IHN0YXRlO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cblxuLyoqXG4gKkBoaWRkZW5cbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdncmlkRmlsdGVyaW5nJyxcbiAgICBwdXJlOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRGaWx0ZXJpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyaWRBUEk6IEdyaWRCYXNlQVBJU2VydmljZTxJZ3hHcmlkQmFzZURpcmVjdGl2ZSAmIEdyaWRUeXBlPikgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGNvbGxlY3Rpb246IGFueVtdLCBleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsXG4gICAgICAgIGZpbHRlclN0cmF0ZWd5OiBJRmlsdGVyaW5nU3RyYXRlZ3ksXG4gICAgICAgIGFkdmFuY2VkRXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBpZDogc3RyaW5nLCBwaXBlVHJpZ2dlcjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRBUEkuZ3JpZDtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgICAgICBleHByZXNzaW9uc1RyZWU6IGV4cHJlc3Npb25zVHJlZSxcbiAgICAgICAgICAgIHN0cmF0ZWd5OiBmaWx0ZXJTdHJhdGVneSxcbiAgICAgICAgICAgIGFkdmFuY2VkRXhwcmVzc2lvbnNUcmVlOiBhZHZhbmNlZEV4cHJlc3Npb25zVHJlZVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUuZW1wdHkoc3RhdGUuZXhwcmVzc2lvbnNUcmVlKSAmJiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUuZW1wdHkoc3RhdGUuYWR2YW5jZWRFeHByZXNzaW9uc1RyZWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IERhdGFVdGlsLmZpbHRlcihjbG9uZUFycmF5KGNvbGxlY3Rpb24pLCBzdGF0ZSk7XG4gICAgICAgIGdyaWQuZmlsdGVyZWREYXRhID0gcmVzdWx0O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiJdfQ==