@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
284 lines • 22.9 kB
JavaScript
import { __decorate, __extends, __metadata, __param, __read, __spread, __values } from "tslib";
import { Pipe, Inject, LOCALE_ID } from '@angular/core';
import { GridBaseAPIService } from '../api.service';
import { DataUtil } from '../../data-operations/data-util';
import { cloneArray } from '../../core/utils';
import { DatePipe, DecimalPipe } from '@angular/common';
/**
* @hidden
* @internal
*/
var IgxGridCellStyleClassesPipe = /** @class */ (function () {
function IgxGridCellStyleClassesPipe() {
}
IgxGridCellStyleClassesPipe.prototype.transform = function (cssClasses, value, data, field, index) {
var e_1, _a;
if (!cssClasses) {
return '';
}
var result = [];
try {
for (var _b = __values(Object.keys(cssClasses)), _c = _b.next(); !_c.done; _c = _b.next()) {
var cssClass = _c.value;
var callbackOrValue = cssClasses[cssClass];
var apply = typeof callbackOrValue === 'function' ? callbackOrValue(data, field, value, index) : callbackOrValue;
if (apply) {
result.push(cssClass);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return result.join(' ');
};
IgxGridCellStyleClassesPipe = __decorate([
Pipe({
name: 'igxCellStyleClasses'
})
], IgxGridCellStyleClassesPipe);
return IgxGridCellStyleClassesPipe;
}());
export { IgxGridCellStyleClassesPipe };
/**
* @hidden
* @internal
*/
var IgxGridCellStylesPipe = /** @class */ (function () {
function IgxGridCellStylesPipe() {
}
IgxGridCellStylesPipe.prototype.transform = function (styles, value, data, field, index) {
var e_2, _a;
var css = {};
if (!styles) {
return css;
}
try {
for (var _b = __values(Object.keys(styles)), _c = _b.next(); !_c.done; _c = _b.next()) {
var prop = _c.value;
var res = styles[prop];
css[prop] = typeof res === 'function' ? res(data, field, value, index) : res;
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_2) throw e_2.error; }
}
return css;
};
IgxGridCellStylesPipe = __decorate([
Pipe({
name: 'igxCellStyles'
})
], IgxGridCellStylesPipe);
return IgxGridCellStylesPipe;
}());
export { IgxGridCellStylesPipe };
/**
* @hidden
* @internal
*/
var IgxGridNotGroupedPipe = /** @class */ (function () {
function IgxGridNotGroupedPipe() {
}
IgxGridNotGroupedPipe.prototype.transform = function (value) {
return value.filter(function (item) { return !item.columnGroup; });
};
IgxGridNotGroupedPipe = __decorate([
Pipe({
name: 'igxNotGrouped'
})
], IgxGridNotGroupedPipe);
return IgxGridNotGroupedPipe;
}());
export { IgxGridNotGroupedPipe };
/**
* @hidden
* @internal
*/
var IgxGridTopLevelColumns = /** @class */ (function () {
function IgxGridTopLevelColumns() {
}
IgxGridTopLevelColumns.prototype.transform = function (value) {
return value.filter(function (item) { return item.level === 0; });
};
IgxGridTopLevelColumns = __decorate([
Pipe({
name: 'igxTopLevel'
})
], IgxGridTopLevelColumns);
return IgxGridTopLevelColumns;
}());
export { IgxGridTopLevelColumns };
/**
* @hidden
* @internal
*/
var IgxGridFilterConditionPipe = /** @class */ (function () {
function IgxGridFilterConditionPipe() {
}
IgxGridFilterConditionPipe.prototype.transform = function (value) {
return value.split(/(?=[A-Z])/).join(' ');
};
IgxGridFilterConditionPipe = __decorate([
Pipe({
name: 'filterCondition',
pure: true
})
], IgxGridFilterConditionPipe);
return IgxGridFilterConditionPipe;
}());
export { IgxGridFilterConditionPipe };
/**
* @hidden
* @internal
*/
var IgxGridTransactionPipe = /** @class */ (function () {
function IgxGridTransactionPipe(gridAPI) {
this.gridAPI = gridAPI;
}
IgxGridTransactionPipe.prototype.transform = function (collection, id, pipeTrigger) {
var grid = this.gridAPI.grid;
if (grid.transactions.enabled) {
var result = DataUtil.mergeTransactions(cloneArray(collection), grid.transactions.getAggregatedChanges(true), grid.primaryKey);
return result;
}
return collection;
};
IgxGridTransactionPipe.ctorParameters = function () { return [
{ type: GridBaseAPIService }
]; };
IgxGridTransactionPipe = __decorate([
Pipe({
name: 'gridTransaction',
pure: true
}),
__metadata("design:paramtypes", [GridBaseAPIService])
], IgxGridTransactionPipe);
return IgxGridTransactionPipe;
}());
export { IgxGridTransactionPipe };
/**
* @hidden
* @internal
*/
var IgxGridPaginatorOptionsPipe = /** @class */ (function () {
function IgxGridPaginatorOptionsPipe() {
}
IgxGridPaginatorOptionsPipe.prototype.transform = function (values) {
return Array.from(new Set(__spread(values))).sort(function (a, b) { return a - b; });
};
IgxGridPaginatorOptionsPipe = __decorate([
Pipe({
name: 'paginatorOptions',
pure: true,
})
], IgxGridPaginatorOptionsPipe);
return IgxGridPaginatorOptionsPipe;
}());
export { IgxGridPaginatorOptionsPipe };
/**
* @hidden
* @internal
*/
var IgxHasVisibleColumnsPipe = /** @class */ (function () {
function IgxHasVisibleColumnsPipe() {
}
IgxHasVisibleColumnsPipe.prototype.transform = function (values, hasVisibleColumns) {
if (!(values && values.length)) {
return values;
}
return hasVisibleColumns ? values : [];
};
IgxHasVisibleColumnsPipe = __decorate([
Pipe({
name: 'visibleColumns',
pure: true
})
], IgxHasVisibleColumnsPipe);
return IgxHasVisibleColumnsPipe;
}());
export { IgxHasVisibleColumnsPipe };
/**
* @hidden
* @internal
*/
var IgxDatePipeComponent = /** @class */ (function (_super) {
__extends(IgxDatePipeComponent, _super);
function IgxDatePipeComponent(locale) {
var _this =
// D.P. constructor duplication due to es6 compilation, might be obsolete in the future
_super.call(this, locale) || this;
_this.DEFAULT_DATE_FORMAT = 'mediumDate';
return _this;
}
IgxDatePipeComponent.prototype.transform = function (value, locale) {
if (value && value instanceof Date) {
if (locale) {
return _super.prototype.transform.call(this, value, this.DEFAULT_DATE_FORMAT, undefined, locale);
}
else {
return _super.prototype.transform.call(this, value);
}
}
else {
return value;
}
};
IgxDatePipeComponent.ctorParameters = function () { return [
{ type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
]; };
IgxDatePipeComponent = __decorate([
Pipe({
name: 'igxdate'
}),
__param(0, Inject(LOCALE_ID)),
__metadata("design:paramtypes", [String])
], IgxDatePipeComponent);
return IgxDatePipeComponent;
}(DatePipe));
export { IgxDatePipeComponent };
/**
* @hidden
* @internal
*/
var IgxDecimalPipeComponent = /** @class */ (function (_super) {
__extends(IgxDecimalPipeComponent, _super);
function IgxDecimalPipeComponent(locale) {
// D.P. constructor duplication due to es6 compilation, might be obsolete in the future
return _super.call(this, locale) || this;
}
IgxDecimalPipeComponent.prototype.transform = function (value, locale) {
if (value && typeof value === 'number') {
if (locale) {
return _super.prototype.transform.call(this, value, undefined, locale);
}
else {
return _super.prototype.transform.call(this, value);
}
}
else {
return value;
}
};
IgxDecimalPipeComponent.ctorParameters = function () { return [
{ type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
]; };
IgxDecimalPipeComponent = __decorate([
Pipe({
name: 'igxdecimal'
}),
__param(0, Inject(LOCALE_ID)),
__metadata("design:paramtypes", [String])
], IgxDecimalPipeComponent);
return IgxDecimalPipeComponent;
}(DecimalPipe));
export { IgxDecimalPipeComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzL2NvbW1vbi9waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQ7OztHQUdHO0FBSUg7SUFBQTtJQW1CQSxDQUFDO0lBakJHLCtDQUFTLEdBQVQsVUFBVSxVQUFtQyxFQUFFLEtBQVUsRUFBRSxJQUFTLEVBQUUsS0FBYSxFQUFFLEtBQWE7O1FBQzlGLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDYixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsSUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDOztZQUVsQixLQUF1QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO2dCQUEzQyxJQUFNLFFBQVEsV0FBQTtnQkFDZixJQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzdDLElBQU0sS0FBSyxHQUFHLE9BQU8sZUFBZSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7Z0JBQ25ILElBQUksS0FBSyxFQUFFO29CQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7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QUlIO0lBQTZDLDJDQUFXO0lBQ3BELGlDQUErQixNQUFjO1FBQ3pDLHVGQUF1RjtlQUN2RixrQkFBTSxNQUFNLENBQUM7SUFDakIsQ0FBQztJQUNELDJDQUFTLEdBQVQsVUFBVSxLQUFVLEVBQUUsTUFBYztRQUNoQyxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsT0FBTyxpQkFBTSxTQUFTLFlBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNwRDtpQkFBTTtnQkFDSCxPQUFPLGlCQUFNLFNBQVMsWUFBQyxLQUFLLENBQUMsQ0FBQzthQUNqQztTQUNKO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7OzZDQWRZLE1BQU0sU0FBQyxTQUFTOztJQURwQix1QkFBdUI7UUFIbkMsSUFBSSxDQUFDO1lBQ0YsSUFBSSxFQUFFLFlBQVk7U0FDckIsQ0FBQztRQUVlLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBOztPQURyQix1QkFBdUIsQ0FnQm5DO0lBQUQsOEJBQUM7Q0FBQSxBQWhCRCxDQUE2QyxXQUFXLEdBZ0J2RDtTQWhCWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtLCBJbmplY3QsIExPQ0FMRV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZEJhc2VBUElTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4R3JpZEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9ncmlkLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IERhdGFVdGlsIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBjbG9uZUFycmF5IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGF0ZVBpcGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdpZ3hDZWxsU3R5bGVDbGFzc2VzJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkQ2VsbFN0eWxlQ2xhc3Nlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIHRyYW5zZm9ybShjc3NDbGFzc2VzOiB7IFtwcm9wOiBzdHJpbmddOiBhbnkgfSwgdmFsdWU6IGFueSwgZGF0YTogYW55LCBmaWVsZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjc3NDbGFzc2VzKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNzc0NsYXNzIG9mIE9iamVjdC5rZXlzKGNzc0NsYXNzZXMpKSB7XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFja09yVmFsdWUgPSBjc3NDbGFzc2VzW2Nzc0NsYXNzXTtcbiAgICAgICAgICAgIGNvbnN0IGFwcGx5ID0gdHlwZW9mIGNhbGxiYWNrT3JWYWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IGNhbGxiYWNrT3JWYWx1ZShkYXRhLCBmaWVsZCwgdmFsdWUsIGluZGV4KSA6IGNhbGxiYWNrT3JWYWx1ZTtcbiAgICAgICAgICAgIGlmIChhcHBseSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNzc0NsYXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQuam9pbignICcpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdpZ3hDZWxsU3R5bGVzJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkQ2VsbFN0eWxlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIHRyYW5zZm9ybShzdHlsZXM6IHsgW3Byb3A6IHN0cmluZ106IGFueSB9LCB2YWx1ZTogYW55LCBkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiB7IFtwcm9wOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgICAgIGNvbnN0IGNzcyA9IHt9O1xuICAgICAgICBpZiAoIXN0eWxlcykge1xuICAgICAgICAgICAgcmV0dXJuIGNzcztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyhzdHlsZXMpKSB7XG4gICAgICAgICAgICBjb25zdCByZXMgPSBzdHlsZXNbcHJvcF07XG4gICAgICAgICAgICBjc3NbcHJvcF0gPSB0eXBlb2YgcmVzID09PSAnZnVuY3Rpb24nID8gcmVzKGRhdGEsIGZpZWxkLCB2YWx1ZSwgaW5kZXgpIDogcmVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNzcztcbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnaWd4Tm90R3JvdXBlZCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZE5vdEdyb3VwZWRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueVtdKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdmFsdWUuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uY29sdW1uR3JvdXApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdpZ3hUb3BMZXZlbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZFRvcExldmVsQ29sdW1ucyBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLmZpbHRlcihpdGVtID0+IGl0ZW0ubGV2ZWwgPT09IDApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdmaWx0ZXJDb25kaXRpb24nLFxuICAgIHB1cmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEZpbHRlckNvbmRpdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgvKD89W0EtWl0pLykuam9pbignICcpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdncmlkVHJhbnNhY3Rpb24nLFxuICAgIHB1cmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZFRyYW5zYWN0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBncmlkQVBJOiBHcmlkQmFzZUFQSVNlcnZpY2U8SWd4R3JpZEJhc2VEaXJlY3RpdmUgJiBHcmlkVHlwZT4pIHsgfVxuXG4gICAgdHJhbnNmb3JtKGNvbGxlY3Rpb246IGFueVtdLCBpZDogc3RyaW5nLCBwaXBlVHJpZ2dlcjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGdyaWQ6IElneEdyaWRCYXNlRGlyZWN0aXZlID0gdGhpcy5ncmlkQVBJLmdyaWQ7XG5cbiAgICAgICAgaWYgKCBncmlkLnRyYW5zYWN0aW9ucy5lbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBEYXRhVXRpbC5tZXJnZVRyYW5zYWN0aW9ucyhcbiAgICAgICAgICAgICAgICBjbG9uZUFycmF5KGNvbGxlY3Rpb24pLFxuICAgICAgICAgICAgICAgIGdyaWQudHJhbnNhY3Rpb25zLmdldEFnZ3JlZ2F0ZWRDaGFuZ2VzKHRydWUpLFxuICAgICAgICAgICAgICAgIGdyaWQucHJpbWFyeUtleSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdwYWdpbmF0b3JPcHRpb25zJyxcbiAgICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkUGFnaW5hdG9yT3B0aW9uc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlczogQXJyYXk8bnVtYmVyPikge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KFsuLi52YWx1ZXNdKSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd2aXNpYmxlQ29sdW1ucycsXG4gICAgcHVyZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hIYXNWaXNpYmxlQ29sdW1uc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWVzOiBhbnlbXSwgaGFzVmlzaWJsZUNvbHVtbnMpIHtcbiAgICAgICAgaWYgKCEodmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNWaXNpYmxlQ29sdW1ucyA/IHZhbHVlcyA6IFtdO1xuICAgIH1cblxufVxuXG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnaWd4ZGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4RGF0ZVBpcGVDb21wb25lbnQgZXh0ZW5kcyBEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEVfRk9STUFUID0gJ21lZGl1bURhdGUnO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIEQuUC4gY29uc3RydWN0b3IgZHVwbGljYXRpb24gZHVlIHRvIGVzNiBjb21waWxhdGlvbiwgbWlnaHQgYmUgb2Jzb2xldGUgaW4gdGhlIGZ1dHVyZVxuICAgICAgICBzdXBlcihsb2NhbGUpO1xuICAgIH1cbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgbG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgdGhpcy5ERUZBVUxUX0RBVEVfRk9STUFULCB1bmRlZmluZWQsIGxvY2FsZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0odmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqIEBpbnRlcm5hbFxuICovXG5AUGlwZSh7XG4gICAgbmFtZTogJ2lneGRlY2ltYWwnXG59KVxuZXhwb3J0IGNsYXNzIElneERlY2ltYWxQaXBlQ29tcG9uZW50IGV4dGVuZHMgRGVjaW1hbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KExPQ0FMRV9JRCkgbG9jYWxlOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gRC5QLiBjb25zdHJ1Y3RvciBkdXBsaWNhdGlvbiBkdWUgdG8gZXM2IGNvbXBpbGF0aW9uLCBtaWdodCBiZSBvYnNvbGV0ZSBpbiB0aGUgZnV0dXJlXG4gICAgICAgIHN1cGVyKGxvY2FsZSk7XG4gICAgfVxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBsb2NhbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgdW5kZWZpbmVkLCBsb2NhbGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==