material-dynamic-table
Advanced tools
@@ -210,2 +210,52 @@ (function (global, factory) { | ||
}; | ||
/** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.getFilter = /** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
function (columnName) { | ||
/** @type {?} */ | ||
var filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error("Column with name '" + columnName + "' does not exist."); | ||
} | ||
return this.appliedFilters[filterColumn.name]; | ||
}; | ||
/** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.setFilter = /** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
function (columnName, filter) { | ||
/** @type {?} */ | ||
var filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error("Cannot set filter for a column. Column with name '" + columnName + "' does not exist."); | ||
} | ||
this.appliedFilters[filterColumn.name] = filter; | ||
this.updateDataSource(); | ||
}; | ||
/** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.getColumnByName = /** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
function (columnName) { | ||
return this.columns.find(function (c) { | ||
return (c.name ? c.name.toLowerCase() : c.name) === (columnName ? columnName.toLowerCase() : columnName); | ||
}); | ||
}; | ||
DynamicTableComponent.decorators = [ | ||
@@ -497,2 +547,2 @@ { type: core.Component, args: [{ | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZHluYW1pYy10YWJsZS51bWQuanMubWFwIiwic291cmNlcyI6WyJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2NvbHVtbi1maWx0ZXIubW9kZWwudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwuZGlyZWN0aXZlLnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvdGV4dC1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuc2VydmljZS50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC90YWJsZS1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvY29sdW1uLWNvbmZpZy5tb2RlbC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2RhdGUtY2VsbC5jb21wb25lbnQudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2R5bmFtaWMtdGFibGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5GaWx0ZXIge1xuICAgIGNvbHVtbjogQ29sdW1uQ29uZmlnO1xuICAgIGZpbHRlcjogYW55O1xufSIsImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIENvbHVtbkZpbHRlclNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RlcmVkRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBUeXBlPGFueT47IH0gPSB7fTtcbiAgICBcbiAgICByZWdpc3RlckZpbHRlcih0eXBlOiBzdHJpbmcsIGNvbXBvbmVudDogVHlwZTxhbnk+KSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJlZEZpbHRlcnNbdHlwZV0gPSBjb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0RmlsdGVyKHR5cGU6IHN0cmluZyk6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJlZEZpbHRlcnNbdHlwZV07XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgIH1cbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U29ydCwgTWF0UGFnaW5hdG9yLCBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gJy4vY29sdW1uLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY29sdW1uLWZpbHRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWR0LWR5bmFtaWMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY29sdW1uczogQ29sdW1uQ29uZmlnW107XG4gIEBJbnB1dCgpIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U8YW55PjtcbiAgQElucHV0KCkgcGFnZVNpemUgPSAyMDtcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zID0gWzIwLCA1MCwgMTAwXTtcbiAgQElucHV0KCkgc2hvd0ZpbHRlcnMgPSB0cnVlO1xuICBASW5wdXQoKSBzdGlja3lIZWFkZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XG5cbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0OyAgXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwcml2YXRlIGludGVybmFsUGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgcHJpdmF0ZSBhcHBsaWVkRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBDb2x1bW5GaWx0ZXI7IH0gPSB7fTtcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29sdW1uRmlsdGVyU2VydmljZTogQ29sdW1uRmlsdGVyU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZykgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcignRHluYW1pY1RhYmxlIG11c3QgYmUgcHJvdmlkZWQgd2l0aCBkYXRhIHNvdXJjZS4nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29sdW1ucyA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcignRHluYW1pY1RhYmxlIG11c3QgYmUgcHJvdmlkZWQgd2l0aCBjb2x1bW4gZGVmaW5pdGlvbnMuJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFnaW5hdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucGFnaW5hdG9yID0gdGhpcy5pbnRlcm5hbFBhZ2luYXRvcjtcbiAgICB9ICAgIFxuXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uLCBpbmRleCkgPT4gdGhpcy5wcmVwYXJlQ29sdW1uTmFtZShjb2x1bW4ubmFtZSwgaW5kZXgpKTtcbiAgICBcbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlIGFzIGFueTtcbiAgICBkYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIGlzVXNpbmdJbnRlcm5hbFBhZ2luYXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0b3IgPT09IHRoaXMuaW50ZXJuYWxQYWdpbmF0b3I7XG4gIH1cblxuICBjYW5GaWx0ZXIoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvbHVtbkZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyKGNvbHVtbi50eXBlKTtcblxuICAgIHJldHVybiBmaWx0ZXIgIT0gbnVsbDtcbiAgfVxuXG4gIGlzRmlsdGVyZWQoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV07XG4gIH1cblxuICBwcmVwYXJlQ29sdW1uTmFtZShuYW1lOiBzdHJpbmcsIGNvbHVtbk51bWJlcjogbnVtYmVyKSB7ICAgXG4gICAgcmV0dXJuIG5hbWUgfHwgJ2NvbCcgKyBjb2x1bW5OdW1iZXI7XG4gIH1cblxuICBmaWx0ZXIoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvbHVtbkZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyKGNvbHVtbi50eXBlKTtcblxuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICAgIGNvbnN0IGNvbHVtbkZpbHRlciA9IG5ldyBDb2x1bW5GaWx0ZXIoKTtcbiAgICAgIGNvbHVtbkZpbHRlci5jb2x1bW4gPSBjb2x1bW47XG5cbiAgICAgIGlmICh0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSkge1xuICAgICAgICBjb2x1bW5GaWx0ZXIuZmlsdGVyID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSk7XG4gICAgICB9XG5cbiAgICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0gY29sdW1uRmlsdGVyO1xuICAgICAgICBcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oZmlsdGVyLCBkaWFsb2dDb25maWcpO1xuXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdID0gcmVzdWx0O1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJycpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmIChyZXN1bHQgfHwgcmVzdWx0ID09PSAnJykge1xuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjbGVhckZpbHRlcnMoKSB7XG4gICAgdGhpcy5hcHBsaWVkRmlsdGVycyA9IHt9O1xuICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZURhdGFTb3VyY2UoKSB7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBhbnk7XG4gICAgZGF0YVNvdXJjZS5maWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gIH1cblxuICBnZXRGaWx0ZXJzKCkge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmFwcGxpZWRGaWx0ZXJzO1xuICAgIGNvbnN0IGZpbHRlckFycmF5ID0gT2JqZWN0LmtleXMoZmlsdGVycykubWFwKChrZXkpID0+IGZpbHRlcnNba2V5XSk7XG4gICAgcmV0dXJuIGZpbHRlckFycmF5O1xuICB9XG59IiwiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW21kdENlbGxIb3N0XScsXG59KVxuZXhwb3J0IGNsYXNzIENlbGxEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC10ZXh0LWNlbGwnLFxuICAgIHRlbXBsYXRlOiAne3sgcm93W2NvbHVtbi5uYW1lXSB9fSdcbn0pXG5leHBvcnQgY2xhc3MgVGV4dENlbGxDb21wb25lbnQgaW1wbGVtZW50cyBDZWxsQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjb2x1bW46IENvbHVtbkNvbmZpZztcbiAgICBASW5wdXQoKSByb3c6IG9iamVjdDtcbn0iLCJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1jZWxsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBDZWxsU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWRDZWxsczogeyBba2V5OiBzdHJpbmddOiBUeXBlPGFueT47IH0gPSB7fTtcbiAgICBcbiAgICByZWdpc3RlckNlbGwodHlwZTogc3RyaW5nLCBjb21wb25lbnQ6IFR5cGU8YW55Pikge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWRDZWxsc1t0eXBlXSA9IGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBnZXRDZWxsKHR5cGU6IHN0cmluZyk6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJlZENlbGxzW3R5cGVdO1xuXG4gICAgICAgIGlmIChjb21wb25lbnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFRleHRDZWxsQ29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgICB9XG59IiwiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIElucHV0LCBWaWV3Q2hpbGQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vY2VsbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2VsbFNlcnZpY2UgfSBmcm9tICcuL2NlbGwtdHlwZXMvY2VsbC5zZXJ2aWNlJztcbmltcG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtdHlwZXMvY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWR0LXRhYmxlLWNlbGwnLFxuICAgIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlIG1kdENlbGxIb3N0PjwvbmctdGVtcGxhdGU+J1xufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoQ2VsbERpcmVjdGl2ZSkgY2VsbEhvc3Q6IENlbGxEaXJlY3RpdmU7XG5cbiAgICBASW5wdXQoKSByb3c6IG9iamVjdDtcbiAgICBASW5wdXQoKSBjb2x1bW46IENvbHVtbkNvbmZpZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBDZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikgeyB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0Q2VsbCgpO1xuICAgIH1cblxuICAgIGluaXRDZWxsKCkge1xuICAgICAgICBjb25zdCBjZWxsQ29tcG9uZW50ID0gdGhpcy5jZWxsU2VydmljZS5nZXRDZWxsKHRoaXMuY29sdW1uLnR5cGUpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY2VsbENvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSB0aGlzLmNlbGxIb3N0LnZpZXdDb250YWluZXJSZWY7XG4gICAgICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgQ2VsbENvbXBvbmVudDtcbiAgICAgICAgY2VsbC5yb3cgPSB0aGlzLnJvdztcbiAgICAgICAgY2VsbC5jb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICB9XG59IiwiZXhwb3J0IGNsYXNzIENvbHVtbkNvbmZpZyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvcHRpb25zPzogYW55O1xyXG4gICAgc3RpY2t5Pzogc3RyaW5nO1xyXG4gICAgc29ydD86IGJvb2xlYW47XHJcbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC1kYXRlLWNlbGwnLFxuICAgIHRlbXBsYXRlOiAne3sgcm93W2NvbHVtbi5uYW1lXSB8IGRhdGU6ZGF0ZUZvcm1hdCB9fSdcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUNlbGxDb21wb25lbnQgaW1wbGVtZW50cyBDZWxsQ29tcG9uZW50LCBPbkluaXQge1xuICAgIEBJbnB1dCgpIGNvbHVtbjogQ29sdW1uQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJvdzogb2JqZWN0O1xuXG4gICAgZGF0ZUZvcm1hdCA9ICdzaG9ydCc7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbi5vcHRpb25zLmRhdGVGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSB0aGlzLmNvbHVtbi5vcHRpb25zLmRhdGVGb3JtYXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIE1hdFRhYmxlTW9kdWxlLFxuICBNYXRTb3J0TW9kdWxlLFxuICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gIE1hdEljb25Nb2R1bGUsXG4gIE1hdERpYWxvZ01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5cbmltcG9ydCB7IER5bmFtaWNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ2VsbFNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jZWxsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY29sdW1uLWZpbHRlci5zZXJ2aWNlJztcblxuZXhwb3J0IHsgQ2VsbFNlcnZpY2UsIENlbGxEaXJlY3RpdmUsIENvbHVtbkZpbHRlclNlcnZpY2UgfTtcbmV4cG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDb2x1bW5GaWx0ZXIgfSBmcm9tICcuL2NvbHVtbi1maWx0ZXIubW9kZWwnO1xuZXhwb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuaW1wb3J0IHsgVGV4dENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy90ZXh0LWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvZGF0ZS1jZWxsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRHluYW1pY1RhYmxlQ29tcG9uZW50LFxuICAgIFRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBDZWxsRGlyZWN0aXZlLFxuICAgIFRleHRDZWxsQ29tcG9uZW50LFxuICAgIERhdGVDZWxsQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtEeW5hbWljVGFibGVDb21wb25lbnRdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgICBUZXh0Q2VsbENvbXBvbmVudCxcbiAgICBEYXRlQ2VsbENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDZWxsU2VydmljZSxcbiAgICBDb2x1bW5GaWx0ZXJTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlTW9kdWxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZWxsU2VydmljZTogQ2VsbFNlcnZpY2UpIHtcbiAgICBjZWxsU2VydmljZS5yZWdpc3RlckNlbGwoJ3N0cmluZycsIFRleHRDZWxsQ29tcG9uZW50KTtcbiAgICBjZWxsU2VydmljZS5yZWdpc3RlckNlbGwoJ2RhdGUnLCBEYXRlQ2VsbENvbXBvbmVudCk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJNYXREaWFsb2dDb25maWciLCJDb21wb25lbnQiLCJNYXREaWFsb2ciLCJJbnB1dCIsIlZpZXdDaGlsZCIsIk1hdFNvcnQiLCJNYXRQYWdpbmF0b3IiLCJEaXJlY3RpdmUiLCJWaWV3Q29udGFpbmVyUmVmIiwiQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIiwiTmdNb2R1bGUiLCJDb21tb25Nb2R1bGUiLCJNYXRUYWJsZU1vZHVsZSIsIk1hdFNvcnRNb2R1bGUiLCJNYXRQYWdpbmF0b3JNb2R1bGUiLCJNYXRJY29uTW9kdWxlIiwiTWF0RGlhbG9nTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUE7UUFBQTtTQUdDO1FBQUQsbUJBQUM7SUFBRCxDQUFDOzs7Ozs7QUNIRDtRQUFBO1lBRVksc0JBQWlCLEdBQWtDLEVBQUUsQ0FBQztTQVdqRTs7Ozs7O1FBVEcsNENBQWM7Ozs7O1lBQWQsVUFBZSxJQUFZLEVBQUUsU0FBb0I7Z0JBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7YUFDNUM7Ozs7O1FBRUQsdUNBQVM7Ozs7WUFBVCxVQUFVLElBQVk7O29CQUNaLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUU5QyxPQUFPLFNBQVMsQ0FBQzthQUNwQjtRQUNMLDBCQUFDO0lBQUQsQ0FBQzs7Ozs7O0FDZkQ7UUE2QkUsK0JBQTZCLG1CQUF3QyxFQUFtQixNQUFpQjtZQUE1RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1lBQW1CLFdBQU0sR0FBTixNQUFNLENBQVc7WUFiaEcsYUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNkLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1lBUXRCLG1CQUFjLEdBQXFDLEVBQUUsQ0FBQztTQUVnRDs7OztRQUU5Ryx3Q0FBUTs7O1lBQVI7Z0JBQUEsaUJBaUJDO2dCQWhCQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO29CQUMzQixNQUFNLEtBQUssQ0FBQyxp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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZHluYW1pYy10YWJsZS51bWQuanMubWFwIiwic291cmNlcyI6WyJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2NvbHVtbi1maWx0ZXIubW9kZWwudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwuZGlyZWN0aXZlLnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvdGV4dC1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuc2VydmljZS50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC90YWJsZS1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvY29sdW1uLWNvbmZpZy5tb2RlbC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2RhdGUtY2VsbC5jb21wb25lbnQudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2R5bmFtaWMtdGFibGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5GaWx0ZXIge1xuICAgIGNvbHVtbjogQ29sdW1uQ29uZmlnO1xuICAgIGZpbHRlcjogYW55O1xufSIsImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIENvbHVtbkZpbHRlclNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RlcmVkRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBUeXBlPGFueT47IH0gPSB7fTtcbiAgICBcbiAgICByZWdpc3RlckZpbHRlcih0eXBlOiBzdHJpbmcsIGNvbXBvbmVudDogVHlwZTxhbnk+KSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJlZEZpbHRlcnNbdHlwZV0gPSBjb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0RmlsdGVyKHR5cGU6IHN0cmluZyk6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJlZEZpbHRlcnNbdHlwZV07XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgIH1cbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U29ydCwgTWF0UGFnaW5hdG9yLCBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gJy4vY29sdW1uLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY29sdW1uLWZpbHRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWR0LWR5bmFtaWMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY29sdW1uczogQ29sdW1uQ29uZmlnW107XG4gIEBJbnB1dCgpIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U8YW55PjtcbiAgQElucHV0KCkgcGFnZVNpemUgPSAyMDtcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zID0gWzIwLCA1MCwgMTAwXTtcbiAgQElucHV0KCkgc2hvd0ZpbHRlcnMgPSB0cnVlO1xuICBASW5wdXQoKSBzdGlja3lIZWFkZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XG5cbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcHJpdmF0ZSBpbnRlcm5hbFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIHByaXZhdGUgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogYW55OyB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb2x1bW5GaWx0ZXJTZXJ2aWNlOiBDb2x1bW5GaWx0ZXJTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGRhdGEgc291cmNlLicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb2x1bW5zID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGNvbHVtbiBkZWZpbml0aW9ucy4nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdpbmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wYWdpbmF0b3IgPSB0aGlzLmludGVybmFsUGFnaW5hdG9yO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHRoaXMucHJlcGFyZUNvbHVtbk5hbWUoY29sdW1uLm5hbWUsIGluZGV4KSk7XG5cbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlIGFzIGFueTtcbiAgICBkYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIGlzVXNpbmdJbnRlcm5hbFBhZ2luYXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0b3IgPT09IHRoaXMuaW50ZXJuYWxQYWdpbmF0b3I7XG4gIH1cblxuICBjYW5GaWx0ZXIoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvbHVtbkZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyKGNvbHVtbi50eXBlKTtcblxuICAgIHJldHVybiBmaWx0ZXIgIT0gbnVsbDtcbiAgfVxuXG4gIGlzRmlsdGVyZWQoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV07XG4gIH1cblxuICBwcmVwYXJlQ29sdW1uTmFtZShuYW1lOiBzdHJpbmcsIGNvbHVtbk51bWJlcjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5hbWUgfHwgJ2NvbCcgKyBjb2x1bW5OdW1iZXI7XG4gIH1cblxuICBmaWx0ZXIoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvbHVtbkZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyKGNvbHVtbi50eXBlKTtcblxuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICAgIGNvbnN0IGNvbHVtbkZpbHRlciA9IG5ldyBDb2x1bW5GaWx0ZXIoKTtcbiAgICAgIGNvbHVtbkZpbHRlci5jb2x1bW4gPSBjb2x1bW47XG5cbiAgICAgIGlmICh0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSkge1xuICAgICAgICBjb2x1bW5GaWx0ZXIuZmlsdGVyID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSk7XG4gICAgICB9XG5cbiAgICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0gY29sdW1uRmlsdGVyO1xuXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGZpbHRlciwgZGlhbG9nQ29uZmlnKTtcblxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSA9IHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3VsdCB8fCByZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzID0ge307XG4gICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRGF0YVNvdXJjZSgpIHtcbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlIGFzIGFueTtcbiAgICBkYXRhU291cmNlLmZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgfVxuXG4gIGdldEZpbHRlcnMoKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuYXBwbGllZEZpbHRlcnM7XG4gICAgY29uc3QgZmlsdGVyQXJyYXkgPSBPYmplY3Qua2V5cyhmaWx0ZXJzKS5tYXAoKGtleSkgPT4gZmlsdGVyc1trZXldKTtcbiAgICByZXR1cm4gZmlsdGVyQXJyYXk7XG4gIH1cblxuICBnZXRGaWx0ZXIoY29sdW1uTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW4gPSB0aGlzLmdldENvbHVtbkJ5TmFtZShjb2x1bW5OYW1lKTtcblxuICAgIGlmICghZmlsdGVyQ29sdW1uKSB7XG4gICAgICB0aHJvdyBFcnJvcihgQ29sdW1uIHdpdGggbmFtZSAnJHtjb2x1bW5OYW1lfScgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBwbGllZEZpbHRlcnNbZmlsdGVyQ29sdW1uLm5hbWVdO1xuICB9XG5cbiAgc2V0RmlsdGVyKGNvbHVtbk5hbWU6IHN0cmluZywgZmlsdGVyOiBhbnkpIHtcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW4gPSB0aGlzLmdldENvbHVtbkJ5TmFtZShjb2x1bW5OYW1lKTtcblxuICAgIGlmICghZmlsdGVyQ29sdW1uKSB7XG4gICAgICB0aHJvdyBFcnJvcihgQ2Fubm90IHNldCBmaWx0ZXIgZm9yIGEgY29sdW1uLiBDb2x1bW4gd2l0aCBuYW1lICcke2NvbHVtbk5hbWV9JyBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW2ZpbHRlckNvbHVtbi5uYW1lXSA9IGZpbHRlcjtcbiAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1uQnlOYW1lKGNvbHVtbk5hbWU6IHN0cmluZyk6IENvbHVtbkNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5maW5kKGMgPT5cbiAgICAgIChjLm5hbWUgPyBjLm5hbWUudG9Mb3dlckNhc2UoKSA6IGMubmFtZSkgPT09IChjb2x1bW5OYW1lID8gY29sdW1uTmFtZS50b0xvd2VyQ2FzZSgpIDogY29sdW1uTmFtZSlcbiAgICApO1xuICB9XG59IiwiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW21kdENlbGxIb3N0XScsXG59KVxuZXhwb3J0IGNsYXNzIENlbGxEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC10ZXh0LWNlbGwnLFxuICAgIHRlbXBsYXRlOiAne3sgcm93W2NvbHVtbi5uYW1lXSB9fSdcbn0pXG5leHBvcnQgY2xhc3MgVGV4dENlbGxDb21wb25lbnQgaW1wbGVtZW50cyBDZWxsQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjb2x1bW46IENvbHVtbkNvbmZpZztcbiAgICBASW5wdXQoKSByb3c6IG9iamVjdDtcbn0iLCJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1jZWxsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBDZWxsU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWRDZWxsczogeyBba2V5OiBzdHJpbmddOiBUeXBlPGFueT47IH0gPSB7fTtcbiAgICBcbiAgICByZWdpc3RlckNlbGwodHlwZTogc3RyaW5nLCBjb21wb25lbnQ6IFR5cGU8YW55Pikge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWRDZWxsc1t0eXBlXSA9IGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBnZXRDZWxsKHR5cGU6IHN0cmluZyk6IFR5cGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJlZENlbGxzW3R5cGVdO1xuXG4gICAgICAgIGlmIChjb21wb25lbnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFRleHRDZWxsQ29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgICB9XG59IiwiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIElucHV0LCBWaWV3Q2hpbGQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vY2VsbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2VsbFNlcnZpY2UgfSBmcm9tICcuL2NlbGwtdHlwZXMvY2VsbC5zZXJ2aWNlJztcbmltcG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtdHlwZXMvY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWR0LXRhYmxlLWNlbGwnLFxuICAgIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlIG1kdENlbGxIb3N0PjwvbmctdGVtcGxhdGU+J1xufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoQ2VsbERpcmVjdGl2ZSkgY2VsbEhvc3Q6IENlbGxEaXJlY3RpdmU7XG5cbiAgICBASW5wdXQoKSByb3c6IG9iamVjdDtcbiAgICBASW5wdXQoKSBjb2x1bW46IENvbHVtbkNvbmZpZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBDZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikgeyB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0Q2VsbCgpO1xuICAgIH1cblxuICAgIGluaXRDZWxsKCkge1xuICAgICAgICBjb25zdCBjZWxsQ29tcG9uZW50ID0gdGhpcy5jZWxsU2VydmljZS5nZXRDZWxsKHRoaXMuY29sdW1uLnR5cGUpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY2VsbENvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSB0aGlzLmNlbGxIb3N0LnZpZXdDb250YWluZXJSZWY7XG4gICAgICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgQ2VsbENvbXBvbmVudDtcbiAgICAgICAgY2VsbC5yb3cgPSB0aGlzLnJvdztcbiAgICAgICAgY2VsbC5jb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICB9XG59IiwiZXhwb3J0IGNsYXNzIENvbHVtbkNvbmZpZyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvcHRpb25zPzogYW55O1xyXG4gICAgc3RpY2t5Pzogc3RyaW5nO1xyXG4gICAgc29ydD86IGJvb2xlYW47XHJcbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC1kYXRlLWNlbGwnLFxuICAgIHRlbXBsYXRlOiAne3sgcm93W2NvbHVtbi5uYW1lXSB8IGRhdGU6ZGF0ZUZvcm1hdCB9fSdcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUNlbGxDb21wb25lbnQgaW1wbGVtZW50cyBDZWxsQ29tcG9uZW50LCBPbkluaXQge1xuICAgIEBJbnB1dCgpIGNvbHVtbjogQ29sdW1uQ29uZmlnO1xuICAgIEBJbnB1dCgpIHJvdzogb2JqZWN0O1xuXG4gICAgZGF0ZUZvcm1hdCA9ICdzaG9ydCc7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbi5vcHRpb25zLmRhdGVGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSB0aGlzLmNvbHVtbi5vcHRpb25zLmRhdGVGb3JtYXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIE1hdFRhYmxlTW9kdWxlLFxuICBNYXRTb3J0TW9kdWxlLFxuICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gIE1hdEljb25Nb2R1bGUsXG4gIE1hdERpYWxvZ01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5cbmltcG9ydCB7IER5bmFtaWNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ2VsbFNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jZWxsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY29sdW1uLWZpbHRlci5zZXJ2aWNlJztcblxuZXhwb3J0IHsgQ2VsbFNlcnZpY2UsIENlbGxEaXJlY3RpdmUsIENvbHVtbkZpbHRlclNlcnZpY2UgfTtcbmV4cG9ydCB7IENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDb2x1bW5GaWx0ZXIgfSBmcm9tICcuL2NvbHVtbi1maWx0ZXIubW9kZWwnO1xuZXhwb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuaW1wb3J0IHsgVGV4dENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy90ZXh0LWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvZGF0ZS1jZWxsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRHluYW1pY1RhYmxlQ29tcG9uZW50LFxuICAgIFRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBDZWxsRGlyZWN0aXZlLFxuICAgIFRleHRDZWxsQ29tcG9uZW50LFxuICAgIERhdGVDZWxsQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtEeW5hbWljVGFibGVDb21wb25lbnRdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgICBUZXh0Q2VsbENvbXBvbmVudCxcbiAgICBEYXRlQ2VsbENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDZWxsU2VydmljZSxcbiAgICBDb2x1bW5GaWx0ZXJTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlTW9kdWxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZWxsU2VydmljZTogQ2VsbFNlcnZpY2UpIHtcbiAgICBjZWxsU2VydmljZS5yZWdpc3RlckNlbGwoJ3N0cmluZycsIFRleHRDZWxsQ29tcG9uZW50KTtcbiAgICBjZWxsU2VydmljZS5yZWdpc3RlckNlbGwoJ2RhdGUnLCBEYXRlQ2VsbENvbXBvbmVudCk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJNYXREaWFsb2dDb25maWciLCJDb21wb25lbnQiLCJNYXREaWFsb2ciLCJJbnB1dCIsIlZpZXdDaGlsZCIsIk1hdFNvcnQiLCJNYXRQYWdpbmF0b3IiLCJEaXJlY3RpdmUiLCJWaWV3Q29udGFpbmVyUmVmIiwiQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIiwiTmdNb2R1bGUiLCJDb21tb25Nb2R1bGUiLCJNYXRUYWJsZU1vZHVsZSIsIk1hdFNvcnRNb2R1bGUiLCJNYXRQYWdpbmF0b3JNb2R1bGUiLCJNYXRJY29uTW9kdWxlIiwiTWF0RGlhbG9nTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUE7UUFBQTtTQUdDO1FBQUQsbUJBQUM7SUFBRCxDQUFDOzs7Ozs7QUNIRDtRQUFBO1lBRVksc0JBQWlCLEdBQWtDLEVBQUUsQ0FBQztTQVdqRTs7Ozs7O1FBVEcsNENBQWM7Ozs7O1lBQWQsVUFBZSxJQUFZLEVBQUUsU0FBb0I7Z0JBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7YUFDNUM7Ozs7O1FBRUQsdUNBQVM7Ozs7WUFBVCxVQUFVLElBQVk7O29CQUNaLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUU5QyxPQUFPLFNBQVMsQ0FBQzthQUNwQjtRQUNMLDBCQUFDO0lBQUQsQ0FBQzs7Ozs7O0FDZkQ7UUE2QkUsK0JBQTZCLG1CQUF3QyxFQUFtQixNQUFpQjtZQUE1RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1lBQW1CLFdBQU0sR0FBTixNQUFNLENBQVc7WUFiaEcsYUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNkLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1lBUXRCLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztTQUV5RDs7OztRQUU5Ryx3Q0FBUTs7O1lBQVI7Z0JBQUEsaUJBaUJDO2dCQWhCQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO29CQUMzQixNQUFNLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO2lCQUNoRTtnQkFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO29CQUN4QixNQUFNLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO2lCQUN2RTtnQkFF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 |
@@ -1,2 +0,2 @@ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material"),require("@angular/common")):"function"==typeof define&&define.amd?define("material-dynamic-table",["exports","@angular/core","@angular/material","@angular/common"],e):e(t["material-dynamic-table"]={},t.ng.core,t.ng.material,t.ng.common)}(this,function(t,e,i,r){"use strict";var a=function y(){},n=function(){function t(){this.registeredFilters={}}return t.prototype.registerFilter=function(t,e){this.registeredFilters[t]=e},t.prototype.getFilter=function(t){return this.registeredFilters[t]},t}(),o=function(){function t(t,e){this.columnFilterService=t,this.dialog=e,this.pageSize=20,this.pageSizeOptions=[20,50,100],this.showFilters=!0,this.stickyHeader=!1,this.appliedFilters={}}return t.prototype.ngOnInit=function(){var r=this;if(null==this.dataSource)throw Error("DynamicTable must be provided with data source.");if(null==this.columns)throw Error("DynamicTable must be provided with column definitions.");this.paginator===undefined&&(this.paginator=this.internalPaginator),this.displayedColumns=this.columns.map(function(t,e){return r.prepareColumnName(t.name,e)});var t=this.dataSource;t.sort=this.sort,t.paginator=this.paginator},t.prototype.isUsingInternalPaginator=function(){return this.paginator===this.internalPaginator},t.prototype.canFilter=function(t){return null!=this.columnFilterService.getFilter(t.type)},t.prototype.isFiltered=function(t){return this.appliedFilters[t.name]},t.prototype.prepareColumnName=function(t,e){return t||"col"+e},t.prototype.filter=function(e){var r=this,t=this.columnFilterService.getFilter(e.type);if(t){var n=new i.MatDialogConfig,o=new a;o.column=e,this.appliedFilters[e.name]&&(o.filter=Object.create(this.appliedFilters[e.name])),n.data=o,this.dialog.open(t,n).afterClosed().subscribe(function(t){t?r.appliedFilters[e.name]=t:""===t&&delete r.appliedFilters[e.name],(t||""===t)&&r.updateDataSource()})}},t.prototype.clearFilters=function(){this.appliedFilters={},this.updateDataSource()},t.prototype.updateDataSource=function(){this.dataSource.filters=this.getFilters()},t.prototype.getFilters=function(){var e=this.appliedFilters;return Object.keys(e).map(function(t){return e[t]})},t.decorators=[{type:e.Component,args:[{selector:"mdt-dynamic-table",template:'<table mat-table [dataSource]="dataSource"\r\n matSort matSortDirection="asc">\r\n\r\n <ng-container *ngFor="let column of columns; let i = index" matColumnDef="{{ prepareColumnName(column.name, i) }}"\r\n [sticky]="column.sticky === \'start\'" [stickyEnd]="column.sticky === \'end\'">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header="{{ prepareColumnName(column.name, i) }}" [disabled]="!column.name || column.sort === false">\r\n {{ column.displayName }}\r\n <button class="mat-sort-header-button" *ngIf="showFilters && canFilter(column)" (click)="filter(column); $event.stopPropagation();">\r\n <mat-icon color="{{ isFiltered(column) ? \'primary\' : \'default\' }}">filter_list</mat-icon>\r\n </button>\r\n </th>\r\n <td mat-cell *matCellDef="let row"><mdt-table-cell [row]="row" [column]="column"></mdt-table-cell></td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: [stickyHeader]"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>\r\n</table>\r\n<mat-paginator [hidden]="!isUsingInternalPaginator()" [pageSize]="pageSize"\r\n [pageSizeOptions]="pageSizeOptions">\r\n</mat-paginator>',styles:["table{width:100%}th .mat-icon.mat-default{opacity:.54}th .mat-icon.mat-default:hover{opacity:1}[hidden]{display:none}"]}]}],t.ctorParameters=function(){return[{type:n},{type:i.MatDialog}]},t.propDecorators={columns:[{type:e.Input}],dataSource:[{type:e.Input}],pageSize:[{type:e.Input}],pageSizeOptions:[{type:e.Input}],showFilters:[{type:e.Input}],stickyHeader:[{type:e.Input}],paginator:[{type:e.Input}],sort:[{type:e.ViewChild,args:[i.MatSort]}],internalPaginator:[{type:e.ViewChild,args:[i.MatPaginator]}]},t}(),l=function(){function t(t){this.viewContainerRef=t}return t.decorators=[{type:e.Directive,args:[{selector:"[mdtCellHost]"}]}],t.ctorParameters=function(){return[{type:e.ViewContainerRef}]},t}(),s=function(){function t(){}return t.decorators=[{type:e.Component,args:[{selector:"mdt-text-cell",template:"{{ row[column.name] }}"}]}],t.propDecorators={column:[{type:e.Input}],row:[{type:e.Input}]},t}(),c=function(){function t(){this.registeredCells={}}return t.prototype.registerCell=function(t,e){this.registeredCells[t]=e},t.prototype.getCell=function(t){var e=this.registeredCells[t];return null==e?s:e},t}(),p=function(){function t(t,e){this.cellService=t,this.componentFactoryResolver=e}return t.prototype.ngOnInit=function(){this.initCell()},t.prototype.initCell=function(){var t=this.cellService.getCell(this.column.type),e=this.componentFactoryResolver.resolveComponentFactory(t),r=this.cellHost.viewContainerRef;r.clear();var n=r.createComponent(e).instance;n.row=this.row,n.column=this.column},t.decorators=[{type:e.Component,args:[{selector:"mdt-table-cell",template:"<ng-template mdtCellHost></ng-template>"}]}],t.ctorParameters=function(){return[{type:c},{type:e.ComponentFactoryResolver}]},t.propDecorators={cellHost:[{type:e.ViewChild,args:[l]}],row:[{type:e.Input}],column:[{type:e.Input}]},t}(),u=function f(){},m=function(){function t(){this.dateFormat="short"}return t.prototype.ngOnInit=function(){this.column.options&&this.column.options.dateFormat&&(this.dateFormat=this.column.options.dateFormat)},t.decorators=[{type:e.Component,args:[{selector:"mdt-date-cell",template:"{{ row[column.name] | date:dateFormat }}"}]}],t.propDecorators={column:[{type:e.Input}],row:[{type:e.Input}]},t}(),d=function(){function t(t){(this.cellService=t).registerCell("string",s),t.registerCell("date",m)}return t.decorators=[{type:e.NgModule,args:[{imports:[r.CommonModule,i.MatTableModule,i.MatSortModule,i.MatPaginatorModule,i.MatIconModule,i.MatDialogModule],declarations:[o,p,l,s,m],exports:[o],entryComponents:[s,m],providers:[c,n]}]}],t.ctorParameters=function(){return[{type:c}]},t}();t.DynamicTableComponent=o,t.CellService=c,t.CellDirective=l,t.ColumnFilterService=n,t.ColumnFilter=a,t.ColumnConfig=u,t.DynamicTableModule=d,t.ɵc=m,t.ɵb=s,t.ɵa=p,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material"),require("@angular/common")):"function"==typeof define&&define.amd?define("material-dynamic-table",["exports","@angular/core","@angular/material","@angular/common"],e):e(t["material-dynamic-table"]={},t.ng.core,t.ng.material,t.ng.common)}(this,function(t,e,i,r){"use strict";var a=function f(){},n=function(){function t(){this.registeredFilters={}}return t.prototype.registerFilter=function(t,e){this.registeredFilters[t]=e},t.prototype.getFilter=function(t){return this.registeredFilters[t]},t}(),o=function(){function t(t,e){this.columnFilterService=t,this.dialog=e,this.pageSize=20,this.pageSizeOptions=[20,50,100],this.showFilters=!0,this.stickyHeader=!1,this.appliedFilters={}}return t.prototype.ngOnInit=function(){var r=this;if(null==this.dataSource)throw Error("DynamicTable must be provided with data source.");if(null==this.columns)throw Error("DynamicTable must be provided with column definitions.");this.paginator===undefined&&(this.paginator=this.internalPaginator),this.displayedColumns=this.columns.map(function(t,e){return r.prepareColumnName(t.name,e)});var t=this.dataSource;t.sort=this.sort,t.paginator=this.paginator},t.prototype.isUsingInternalPaginator=function(){return this.paginator===this.internalPaginator},t.prototype.canFilter=function(t){return null!=this.columnFilterService.getFilter(t.type)},t.prototype.isFiltered=function(t){return this.appliedFilters[t.name]},t.prototype.prepareColumnName=function(t,e){return t||"col"+e},t.prototype.filter=function(e){var r=this,t=this.columnFilterService.getFilter(e.type);if(t){var n=new i.MatDialogConfig,o=new a;o.column=e,this.appliedFilters[e.name]&&(o.filter=Object.create(this.appliedFilters[e.name])),n.data=o,this.dialog.open(t,n).afterClosed().subscribe(function(t){t?r.appliedFilters[e.name]=t:""===t&&delete r.appliedFilters[e.name],(t||""===t)&&r.updateDataSource()})}},t.prototype.clearFilters=function(){this.appliedFilters={},this.updateDataSource()},t.prototype.updateDataSource=function(){this.dataSource.filters=this.getFilters()},t.prototype.getFilters=function(){var e=this.appliedFilters;return Object.keys(e).map(function(t){return e[t]})},t.prototype.getFilter=function(t){var e=this.getColumnByName(t);if(!e)throw Error("Column with name '"+t+"' does not exist.");return this.appliedFilters[e.name]},t.prototype.setFilter=function(t,e){var r=this.getColumnByName(t);if(!r)throw Error("Cannot set filter for a column. Column with name '"+t+"' does not exist.");this.appliedFilters[r.name]=e,this.updateDataSource()},t.prototype.getColumnByName=function(e){return this.columns.find(function(t){return(t.name?t.name.toLowerCase():t.name)===(e?e.toLowerCase():e)})},t.decorators=[{type:e.Component,args:[{selector:"mdt-dynamic-table",template:'<table mat-table [dataSource]="dataSource"\r\n matSort matSortDirection="asc">\r\n\r\n <ng-container *ngFor="let column of columns; let i = index" matColumnDef="{{ prepareColumnName(column.name, i) }}"\r\n [sticky]="column.sticky === \'start\'" [stickyEnd]="column.sticky === \'end\'">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header="{{ prepareColumnName(column.name, i) }}" [disabled]="!column.name || column.sort === false">\r\n {{ column.displayName }}\r\n <button class="mat-sort-header-button" *ngIf="showFilters && canFilter(column)" (click)="filter(column); $event.stopPropagation();">\r\n <mat-icon color="{{ isFiltered(column) ? \'primary\' : \'default\' }}">filter_list</mat-icon>\r\n </button>\r\n </th>\r\n <td mat-cell *matCellDef="let row"><mdt-table-cell [row]="row" [column]="column"></mdt-table-cell></td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: [stickyHeader]"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>\r\n</table>\r\n<mat-paginator [hidden]="!isUsingInternalPaginator()" [pageSize]="pageSize"\r\n [pageSizeOptions]="pageSizeOptions">\r\n</mat-paginator>',styles:["table{width:100%}th .mat-icon.mat-default{opacity:.54}th .mat-icon.mat-default:hover{opacity:1}[hidden]{display:none}"]}]}],t.ctorParameters=function(){return[{type:n},{type:i.MatDialog}]},t.propDecorators={columns:[{type:e.Input}],dataSource:[{type:e.Input}],pageSize:[{type:e.Input}],pageSizeOptions:[{type:e.Input}],showFilters:[{type:e.Input}],stickyHeader:[{type:e.Input}],paginator:[{type:e.Input}],sort:[{type:e.ViewChild,args:[i.MatSort]}],internalPaginator:[{type:e.ViewChild,args:[i.MatPaginator]}]},t}(),l=function(){function t(t){this.viewContainerRef=t}return t.decorators=[{type:e.Directive,args:[{selector:"[mdtCellHost]"}]}],t.ctorParameters=function(){return[{type:e.ViewContainerRef}]},t}(),s=function(){function t(){}return t.decorators=[{type:e.Component,args:[{selector:"mdt-text-cell",template:"{{ row[column.name] }}"}]}],t.propDecorators={column:[{type:e.Input}],row:[{type:e.Input}]},t}(),c=function(){function t(){this.registeredCells={}}return t.prototype.registerCell=function(t,e){this.registeredCells[t]=e},t.prototype.getCell=function(t){var e=this.registeredCells[t];return null==e?s:e},t}(),u=function(){function t(t,e){this.cellService=t,this.componentFactoryResolver=e}return t.prototype.ngOnInit=function(){this.initCell()},t.prototype.initCell=function(){var t=this.cellService.getCell(this.column.type),e=this.componentFactoryResolver.resolveComponentFactory(t),r=this.cellHost.viewContainerRef;r.clear();var n=r.createComponent(e).instance;n.row=this.row,n.column=this.column},t.decorators=[{type:e.Component,args:[{selector:"mdt-table-cell",template:"<ng-template mdtCellHost></ng-template>"}]}],t.ctorParameters=function(){return[{type:c},{type:e.ComponentFactoryResolver}]},t.propDecorators={cellHost:[{type:e.ViewChild,args:[l]}],row:[{type:e.Input}],column:[{type:e.Input}]},t}(),p=function h(){},m=function(){function t(){this.dateFormat="short"}return t.prototype.ngOnInit=function(){this.column.options&&this.column.options.dateFormat&&(this.dateFormat=this.column.options.dateFormat)},t.decorators=[{type:e.Component,args:[{selector:"mdt-date-cell",template:"{{ row[column.name] | date:dateFormat }}"}]}],t.propDecorators={column:[{type:e.Input}],row:[{type:e.Input}]},t}(),d=function(){function t(t){(this.cellService=t).registerCell("string",s),t.registerCell("date",m)}return t.decorators=[{type:e.NgModule,args:[{imports:[r.CommonModule,i.MatTableModule,i.MatSortModule,i.MatPaginatorModule,i.MatIconModule,i.MatDialogModule],declarations:[o,u,l,s,m],exports:[o],entryComponents:[s,m],providers:[c,n]}]}],t.ctorParameters=function(){return[{type:c}]},t}();t.DynamicTableComponent=o,t.CellService=c,t.CellDirective=l,t.ColumnFilterService=n,t.ColumnFilter=a,t.ColumnConfig=p,t.DynamicTableModule=d,t.ɵc=m,t.ɵb=s,t.ɵa=u,Object.defineProperty(t,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=material-dynamic-table.umd.min.js.map |
@@ -131,2 +131,36 @@ /** | ||
} | ||
/** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
getFilter(columnName) { | ||
/** @type {?} */ | ||
const filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error(`Column with name '${columnName}' does not exist.`); | ||
} | ||
return this.appliedFilters[filterColumn.name]; | ||
} | ||
/** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
setFilter(columnName, filter) { | ||
/** @type {?} */ | ||
const filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error(`Cannot set filter for a column. Column with name '${columnName}' does not exist.`); | ||
} | ||
this.appliedFilters[filterColumn.name] = filter; | ||
this.updateDataSource(); | ||
} | ||
/** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
getColumnByName(columnName) { | ||
return this.columns.find(c => (c.name ? c.name.toLowerCase() : c.name) === (columnName ? columnName.toLowerCase() : columnName)); | ||
} | ||
} | ||
@@ -196,2 +230,2 @@ DynamicTableComponent.decorators = [ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlLyIsInNvdXJjZXMiOlsibGliL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFPcEYsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7SUFpQmhDLFlBQTZCLG1CQUF3QyxFQUFtQixNQUFpQjtRQUE1RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQW1CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFiaEcsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBUXRCLG1CQUFjLEdBQXFDLEVBQUUsQ0FBQztJQUUrQyxDQUFDOzs7O0lBRTlHLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzNCLE1BQU0sS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FD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TyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7O0lBRUQsVUFBVTs7Y0FDRixPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWM7O2NBQzdCLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OztZQXpHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsbXdDQUE2Qzs7YUFFOUM7Ozs7WUFOUSxtQkFBbUI7WUFKSSxTQUFTOzs7c0JBYXRDLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzhCQUNMLEtBQUs7MEJBQ0wsS0FBSzsyQkFDTCxLQUFLO3dCQUNMLEtBQUs7bUJBSUwsU0FBUyxTQUFDLE9BQU87Z0NBQ2pCLFNBQVMsU0FBQyxZQUFZOzs7O0lBWHZCLHdDQUFpQzs7SUFDakMsMkNBQXFDOztJQUNyQyx5Q0FBdUI7O0lBQ3ZCLGdEQUF5Qzs7SUFDekMsNENBQTRCOztJQUM1Qiw2Q0FBOEI7O0lBQzlCLDBDQUFpQzs7SUFFakMsaURBQTJCOztJQUUzQixxQ0FBa0M7Ozs7O0lBQ2xDLGtEQUFpRTs7Ozs7SUFFakUsK0NBQThEOzs7OztJQUVsRCxvREFBeUQ7Ozs7O0lBQUUsdUNBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFBhZ2luYXRvciwgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXIgfSBmcm9tICcuL2NvbHVtbi1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uRmlsdGVyU2VydmljZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NvbHVtbi1maWx0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kdC1keW5hbWljLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGNvbHVtbnM6IENvbHVtbkNvbmZpZ1tdO1xuICBASW5wdXQoKSBkYXRhU291cmNlOiBEYXRhU291cmNlPGFueT47XG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gMjA7XG4gIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFsyMCwgNTAsIDEwMF07XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJzID0gdHJ1ZTtcbiAgQElucHV0KCkgc3RpY2t5SGVhZGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDsgIFxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcHJpdmF0ZSBpbnRlcm5hbFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIHByaXZhdGUgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogQ29sdW1uRmlsdGVyOyB9ID0ge307XG4gIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbHVtbkZpbHRlclNlcnZpY2U6IENvbHVtbkZpbHRlclNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggZGF0YSBzb3VyY2UuJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbHVtbnMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggY29sdW1uIGRlZmluaXRpb25zLicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2luYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnBhZ2luYXRvciA9IHRoaXMuaW50ZXJuYWxQYWdpbmF0b3I7XG4gICAgfSAgICBcblxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHRoaXMucHJlcGFyZUNvbHVtbk5hbWUoY29sdW1uLm5hbWUsIGluZGV4KSk7XG4gICAgXG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBhbnk7XG4gICAgZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgIGRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gIH1cblxuICBpc1VzaW5nSW50ZXJuYWxQYWdpbmF0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdG9yID09PSB0aGlzLmludGVybmFsUGFnaW5hdG9yO1xuICB9XG5cbiAgY2FuRmlsdGVyKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb2x1bW5GaWx0ZXJTZXJ2aWNlLmdldEZpbHRlcihjb2x1bW4udHlwZSk7XG5cbiAgICByZXR1cm4gZmlsdGVyICE9IG51bGw7XG4gIH1cblxuICBpc0ZpbHRlcmVkKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdO1xuICB9XG5cbiAgcHJlcGFyZUNvbHVtbk5hbWUobmFtZTogc3RyaW5nLCBjb2x1bW5OdW1iZXI6IG51bWJlcikgeyAgIFxuICAgIHJldHVybiBuYW1lIHx8ICdjb2wnICsgY29sdW1uTnVtYmVyO1xuICB9XG5cbiAgZmlsdGVyKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb2x1bW5GaWx0ZXJTZXJ2aWNlLmdldEZpbHRlcihjb2x1bW4udHlwZSk7XG5cbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXIgPSBuZXcgQ29sdW1uRmlsdGVyKCk7XG4gICAgICBjb2x1bW5GaWx0ZXIuY29sdW1uID0gY29sdW1uO1xuXG4gICAgICBpZiAodGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0pIHtcbiAgICAgICAgY29sdW1uRmlsdGVyLmZpbHRlciA9IE9iamVjdC5jcmVhdGUodGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0pO1xuICAgICAgfVxuXG4gICAgICBkaWFsb2dDb25maWcuZGF0YSA9IGNvbHVtbkZpbHRlcjtcbiAgICAgICAgXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGZpbHRlciwgZGlhbG9nQ29uZmlnKTtcblxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSA9IHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAocmVzdWx0IHx8IHJlc3VsdCA9PT0gJycpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuYXBwbGllZEZpbHRlcnMgPSB7fTtcbiAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVEYXRhU291cmNlKCkge1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2UuZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5hcHBsaWVkRmlsdGVycztcbiAgICBjb25zdCBmaWx0ZXJBcnJheSA9IE9iamVjdC5rZXlzKGZpbHRlcnMpLm1hcCgoa2V5KSA9PiBmaWx0ZXJzW2tleV0pO1xuICAgIHJldHVybiBmaWx0ZXJBcnJheTtcbiAgfVxufSJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlLyIsInNvdXJjZXMiOlsibGliL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFPcEYsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7SUFpQmhDLFlBQTZCLG1CQUF3QyxFQUFtQixNQUFpQjtRQUE1RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQW1CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFiaEcsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBUXRCLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztJQUV3RCxDQUFDOzs7O0lBRTlHLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzNCLE1BQU0sS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FD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QUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUNsRyxDQUFDO0lBQ0osQ0FBQzs7O1lBcElGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qixtd0NBQTZDOzthQUU5Qzs7OztZQU5RLG1CQUFtQjtZQUpJLFNBQVM7OztzQkFhdEMsS0FBSzt5QkFDTCxLQUFLO3VCQUNMLEtBQUs7OEJBQ0wsS0FBSzswQkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSzttQkFJTCxTQUFTLFNBQUMsT0FBTztnQ0FDakIsU0FBUyxTQUFDLFlBQVk7Ozs7SUFYdkIsd0NBQWlDOztJQUNqQywyQ0FBcUM7O0lBQ3JDLHlDQUF1Qjs7SUFDdkIsZ0RBQXlDOztJQUN6Qyw0Q0FBNEI7O0lBQzVCLDZDQUE4Qjs7SUFDOUIsMENBQWlDOztJQUVqQyxpREFBMkI7O0lBRTNCLHFDQUFrQzs7Ozs7SUFDbEMsa0RBQWlFOzs7OztJQUVqRSwrQ0FBcUQ7Ozs7O0lBRXpDLG9EQUF5RDs7Ozs7SUFBRSx1Q0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U29ydCwgTWF0UGFnaW5hdG9yLCBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gJy4vY29sdW1uLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY29sdW1uLWZpbHRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWR0LWR5bmFtaWMtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY29sdW1uczogQ29sdW1uQ29uZmlnW107XG4gIEBJbnB1dCgpIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U8YW55PjtcbiAgQElucHV0KCkgcGFnZVNpemUgPSAyMDtcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zID0gWzIwLCA1MCwgMTAwXTtcbiAgQElucHV0KCkgc2hvd0ZpbHRlcnMgPSB0cnVlO1xuICBASW5wdXQoKSBzdGlja3lIZWFkZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XG5cbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcHJpdmF0ZSBpbnRlcm5hbFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIHByaXZhdGUgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogYW55OyB9ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb2x1bW5GaWx0ZXJTZXJ2aWNlOiBDb2x1bW5GaWx0ZXJTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGRhdGEgc291cmNlLicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb2x1bW5zID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGNvbHVtbiBkZWZpbml0aW9ucy4nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdpbmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wYWdpbmF0b3IgPSB0aGlzLmludGVybmFsUGFnaW5hdG9yO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHRoaXMucHJlcGFyZUNvbHVtbk5hbWUoY29sdW1uLm5hbWUsIGluZGV4KSk7XG5cbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlIGFzIGFueTtcbiAgICBkYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIGlzVXNpbmdJbnRlcm5hbFBhZ2luYXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0b3IgPT09IHRoaXMuaW50ZXJuYWxQYWdpbmF0b3I7XG4gIH1cblxuICBjYW5GaWx0ZXIoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvbHVtbkZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyKGNvbHVtbi50eXBlKTtcblxuICAgIHJldHVybiBmaWx0ZXIgIT0gbnVsbDtcbiAgfVxuXG4gIGlzRmlsdGVyZWQoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV07XG4gIH1cblxuICBwcmVwYXJlQ29sdW1uTmFtZShuYW1lOiBzdHJpbmcsIGNvbHVtbk51bWJlcjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5hbWUgfHwgJ2NvbCcgKyBjb2x1bW5OdW1iZXI7XG4gIH1cblxuICBmaWx0ZXIoY29sdW1uOiBDb2x1bW5Db25maWcpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvbHVtbkZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyKGNvbHVtbi50eXBlKTtcblxuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICAgIGNvbnN0IGNvbHVtbkZpbHRlciA9IG5ldyBDb2x1bW5GaWx0ZXIoKTtcbiAgICAgIGNvbHVtbkZpbHRlci5jb2x1bW4gPSBjb2x1bW47XG5cbiAgICAgIGlmICh0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSkge1xuICAgICAgICBjb2x1bW5GaWx0ZXIuZmlsdGVyID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSk7XG4gICAgICB9XG5cbiAgICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0gY29sdW1uRmlsdGVyO1xuXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGZpbHRlciwgZGlhbG9nQ29uZmlnKTtcblxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSA9IHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc3VsdCB8fCByZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzID0ge307XG4gICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRGF0YVNvdXJjZSgpIHtcbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlIGFzIGFueTtcbiAgICBkYXRhU291cmNlLmZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgfVxuXG4gIGdldEZpbHRlcnMoKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuYXBwbGllZEZpbHRlcnM7XG4gICAgY29uc3QgZmlsdGVyQXJyYXkgPSBPYmplY3Qua2V5cyhmaWx0ZXJzKS5tYXAoKGtleSkgPT4gZmlsdGVyc1trZXldKTtcbiAgICByZXR1cm4gZmlsdGVyQXJyYXk7XG4gIH1cblxuICBnZXRGaWx0ZXIoY29sdW1uTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW4gPSB0aGlzLmdldENvbHVtbkJ5TmFtZShjb2x1bW5OYW1lKTtcblxuICAgIGlmICghZmlsdGVyQ29sdW1uKSB7XG4gICAgICB0aHJvdyBFcnJvcihgQ29sdW1uIHdpdGggbmFtZSAnJHtjb2x1bW5OYW1lfScgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBwbGllZEZpbHRlcnNbZmlsdGVyQ29sdW1uLm5hbWVdO1xuICB9XG5cbiAgc2V0RmlsdGVyKGNvbHVtbk5hbWU6IHN0cmluZywgZmlsdGVyOiBhbnkpIHtcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW4gPSB0aGlzLmdldENvbHVtbkJ5TmFtZShjb2x1bW5OYW1lKTtcblxuICAgIGlmICghZmlsdGVyQ29sdW1uKSB7XG4gICAgICB0aHJvdyBFcnJvcihgQ2Fubm90IHNldCBmaWx0ZXIgZm9yIGEgY29sdW1uLiBDb2x1bW4gd2l0aCBuYW1lICcke2NvbHVtbk5hbWV9JyBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW2ZpbHRlckNvbHVtbi5uYW1lXSA9IGZpbHRlcjtcbiAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1uQnlOYW1lKGNvbHVtbk5hbWU6IHN0cmluZyk6IENvbHVtbkNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5maW5kKGMgPT5cbiAgICAgIChjLm5hbWUgPyBjLm5hbWUudG9Mb3dlckNhc2UoKSA6IGMubmFtZSkgPT09IChjb2x1bW5OYW1lID8gY29sdW1uTmFtZS50b0xvd2VyQ2FzZSgpIDogY29sdW1uTmFtZSlcbiAgICApO1xuICB9XG59Il19 |
@@ -162,2 +162,52 @@ /** | ||
}; | ||
/** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.getFilter = /** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
function (columnName) { | ||
/** @type {?} */ | ||
var filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error("Column with name '" + columnName + "' does not exist."); | ||
} | ||
return this.appliedFilters[filterColumn.name]; | ||
}; | ||
/** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.setFilter = /** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
function (columnName, filter) { | ||
/** @type {?} */ | ||
var filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error("Cannot set filter for a column. Column with name '" + columnName + "' does not exist."); | ||
} | ||
this.appliedFilters[filterColumn.name] = filter; | ||
this.updateDataSource(); | ||
}; | ||
/** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.getColumnByName = /** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
function (columnName) { | ||
return this.columns.find(function (c) { | ||
return (c.name ? c.name.toLowerCase() : c.name) === (columnName ? columnName.toLowerCase() : columnName); | ||
}); | ||
}; | ||
DynamicTableComponent.decorators = [ | ||
@@ -229,2 +279,2 @@ { type: Component, args: [{ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlLyIsInNvdXJjZXMiOlsibGliL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEY7SUFzQkUsK0JBQTZCLG1CQUF3QyxFQUFtQixNQUFpQjtRQUE1RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQW1CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFiaEcsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBUXRCLG1CQUFjLEdBQXFDLEVBQUUsQ0FBQztJQUUrQyxDQUFDOzs7O0lBRTlHLHdDQUFROzs7SUFBUjtRQUFBLGlCQWlCQztRQWhCQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzNCLE1BQU0sS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FD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REFBZ0I7Ozs7SUFBMUI7O1lBQ1EsVUFBVSxHQUFHLG1CQUFBLElBQUksQ0FBQyxVQUFVLEVBQU87UUFDekMsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekMsQ0FBQzs7OztJQUVELDBDQUFVOzs7SUFBVjs7WUFDUSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWM7O1lBQzdCLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBWixDQUFZLENBQUM7UUFDbkUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7Z0JBekdGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3Qixtd0NBQTZDOztpQkFFOUM7Ozs7Z0JBTlEsbUJBQW1CO2dCQUpJLFNBQVM7OzswQkFhdEMsS0FBSzs2QkFDTCxLQUFLOzJCQUNMLEtBQUs7a0NBQ0wsS0FBSzs4QkFDTCxLQUFLOytCQUNMLEtBQUs7NEJBQ0wsS0FBSzt1QkFJTCxTQUFTLFNBQUMsT0FBTztvQ0FDakIsU0FBUyxTQUFDLFlBQVk7O0lBd0Z6Qiw0QkFBQztDQUFBLEFBMUdELElBMEdDO1NBckdZLHFCQUFxQjs7O0lBRWhDLHdDQUFpQzs7SUFDakMsMkNBQXFDOztJQUNyQyx5Q0FBdUI7O0lBQ3ZCLGdEQUF5Qzs7SUFDekMsNENBQTRCOztJQUM1Qiw2Q0FBOEI7O0lBQzlCLDBDQUFpQzs7SUFFakMsaURBQTJCOztJQUUzQixxQ0FBa0M7Ozs7O0lBQ2xDLGtEQUFpRTs7Ozs7SUFFakUsK0NBQThEOzs7OztJQUVsRCxvREFBeUQ7Ozs7O0lBQUUsdUNBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFBhZ2luYXRvciwgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXIgfSBmcm9tICcuL2NvbHVtbi1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uRmlsdGVyU2VydmljZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NvbHVtbi1maWx0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kdC1keW5hbWljLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGNvbHVtbnM6IENvbHVtbkNvbmZpZ1tdO1xuICBASW5wdXQoKSBkYXRhU291cmNlOiBEYXRhU291cmNlPGFueT47XG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gMjA7XG4gIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFsyMCwgNTAsIDEwMF07XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJzID0gdHJ1ZTtcbiAgQElucHV0KCkgc3RpY2t5SGVhZGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDsgIFxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcHJpdmF0ZSBpbnRlcm5hbFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIHByaXZhdGUgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogQ29sdW1uRmlsdGVyOyB9ID0ge307XG4gIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbHVtbkZpbHRlclNlcnZpY2U6IENvbHVtbkZpbHRlclNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggZGF0YSBzb3VyY2UuJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbHVtbnMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggY29sdW1uIGRlZmluaXRpb25zLicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2luYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnBhZ2luYXRvciA9IHRoaXMuaW50ZXJuYWxQYWdpbmF0b3I7XG4gICAgfSAgICBcblxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHRoaXMucHJlcGFyZUNvbHVtbk5hbWUoY29sdW1uLm5hbWUsIGluZGV4KSk7XG4gICAgXG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBhbnk7XG4gICAgZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgIGRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gIH1cblxuICBpc1VzaW5nSW50ZXJuYWxQYWdpbmF0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdG9yID09PSB0aGlzLmludGVybmFsUGFnaW5hdG9yO1xuICB9XG5cbiAgY2FuRmlsdGVyKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb2x1bW5GaWx0ZXJTZXJ2aWNlLmdldEZpbHRlcihjb2x1bW4udHlwZSk7XG5cbiAgICByZXR1cm4gZmlsdGVyICE9IG51bGw7XG4gIH1cblxuICBpc0ZpbHRlcmVkKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdO1xuICB9XG5cbiAgcHJlcGFyZUNvbHVtbk5hbWUobmFtZTogc3RyaW5nLCBjb2x1bW5OdW1iZXI6IG51bWJlcikgeyAgIFxuICAgIHJldHVybiBuYW1lIHx8ICdjb2wnICsgY29sdW1uTnVtYmVyO1xuICB9XG5cbiAgZmlsdGVyKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb2x1bW5GaWx0ZXJTZXJ2aWNlLmdldEZpbHRlcihjb2x1bW4udHlwZSk7XG5cbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXIgPSBuZXcgQ29sdW1uRmlsdGVyKCk7XG4gICAgICBjb2x1bW5GaWx0ZXIuY29sdW1uID0gY29sdW1uO1xuXG4gICAgICBpZiAodGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0pIHtcbiAgICAgICAgY29sdW1uRmlsdGVyLmZpbHRlciA9IE9iamVjdC5jcmVhdGUodGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0pO1xuICAgICAgfVxuXG4gICAgICBkaWFsb2dDb25maWcuZGF0YSA9IGNvbHVtbkZpbHRlcjtcbiAgICAgICAgXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGZpbHRlciwgZGlhbG9nQ29uZmlnKTtcblxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXSA9IHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAocmVzdWx0IHx8IHJlc3VsdCA9PT0gJycpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuYXBwbGllZEZpbHRlcnMgPSB7fTtcbiAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVEYXRhU291cmNlKCkge1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2UuZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5hcHBsaWVkRmlsdGVycztcbiAgICBjb25zdCBmaWx0ZXJBcnJheSA9IE9iamVjdC5rZXlzKGZpbHRlcnMpLm1hcCgoa2V5KSA9PiBmaWx0ZXJzW2tleV0pO1xuICAgIHJldHVybiBmaWx0ZXJBcnJheTtcbiAgfVxufSJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlLyIsInNvdXJjZXMiOlsibGliL2R5bmFtaWMtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEY7SUFzQkUsK0JBQTZCLG1CQUF3QyxFQUFtQixNQUFpQjtRQUE1RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQW1CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFiaEcsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBUXRCLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztJQUV3RCxDQUFDOzs7O0lBRTlHLHdDQUFROzs7SUFBUjtRQUFBLGlCQWlCQztRQWhCQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzNCLE1BQU0sS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FD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SSxDQUFDLFVBQUEsQ0FBQztZQUN4QixPQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUFqRyxDQUFpRyxDQUNsRyxDQUFDO0lBQ0osQ0FBQzs7Z0JBcElGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3Qixtd0NBQTZDOztpQkFFOUM7Ozs7Z0JBTlEsbUJBQW1CO2dCQUpJLFNBQVM7OzswQkFhdEMsS0FBSzs2QkFDTCxLQUFLOzJCQUNMLEtBQUs7a0NBQ0wsS0FBSzs4QkFDTCxLQUFLOytCQUNMLEtBQUs7NEJBQ0wsS0FBSzt1QkFJTCxTQUFTLFNBQUMsT0FBTztvQ0FDakIsU0FBUyxTQUFDLFlBQVk7O0lBbUh6Qiw0QkFBQztDQUFBLEFBcklELElBcUlDO1NBaElZLHFCQUFxQjs7O0lBRWhDLHdDQUFpQzs7SUFDakMsMkNBQXFDOztJQUNyQyx5Q0FBdUI7O0lBQ3ZCLGdEQUF5Qzs7SUFDekMsNENBQTRCOztJQUM1Qiw2Q0FBOEI7O0lBQzlCLDBDQUFpQzs7SUFFakMsaURBQTJCOztJQUUzQixxQ0FBa0M7Ozs7O0lBQ2xDLGtEQUFpRTs7Ozs7SUFFakUsK0NBQXFEOzs7OztJQUV6QyxvREFBeUQ7Ozs7O0lBQUUsdUNBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFBhZ2luYXRvciwgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXIgfSBmcm9tICcuL2NvbHVtbi1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uRmlsdGVyU2VydmljZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NvbHVtbi1maWx0ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kdC1keW5hbWljLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGNvbHVtbnM6IENvbHVtbkNvbmZpZ1tdO1xuICBASW5wdXQoKSBkYXRhU291cmNlOiBEYXRhU291cmNlPGFueT47XG4gIEBJbnB1dCgpIHBhZ2VTaXplID0gMjA7XG4gIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFsyMCwgNTAsIDEwMF07XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJzID0gdHJ1ZTtcbiAgQElucHV0KCkgc3RpY2t5SGVhZGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHByaXZhdGUgaW50ZXJuYWxQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBwcml2YXRlIGFwcGxpZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29sdW1uRmlsdGVyU2VydmljZTogQ29sdW1uRmlsdGVyU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZykgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcignRHluYW1pY1RhYmxlIG11c3QgYmUgcHJvdmlkZWQgd2l0aCBkYXRhIHNvdXJjZS4nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29sdW1ucyA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcignRHluYW1pY1RhYmxlIG11c3QgYmUgcHJvdmlkZWQgd2l0aCBjb2x1bW4gZGVmaW5pdGlvbnMuJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFnaW5hdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucGFnaW5hdG9yID0gdGhpcy5pbnRlcm5hbFBhZ2luYXRvcjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4sIGluZGV4KSA9PiB0aGlzLnByZXBhcmVDb2x1bW5OYW1lKGNvbHVtbi5uYW1lLCBpbmRleCkpO1xuXG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBhbnk7XG4gICAgZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgIGRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gIH1cblxuICBpc1VzaW5nSW50ZXJuYWxQYWdpbmF0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdG9yID09PSB0aGlzLmludGVybmFsUGFnaW5hdG9yO1xuICB9XG5cbiAgY2FuRmlsdGVyKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb2x1bW5GaWx0ZXJTZXJ2aWNlLmdldEZpbHRlcihjb2x1bW4udHlwZSk7XG5cbiAgICByZXR1cm4gZmlsdGVyICE9IG51bGw7XG4gIH1cblxuICBpc0ZpbHRlcmVkKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdO1xuICB9XG5cbiAgcHJlcGFyZUNvbHVtbk5hbWUobmFtZTogc3RyaW5nLCBjb2x1bW5OdW1iZXI6IG51bWJlcikge1xuICAgIHJldHVybiBuYW1lIHx8ICdjb2wnICsgY29sdW1uTnVtYmVyO1xuICB9XG5cbiAgZmlsdGVyKGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb2x1bW5GaWx0ZXJTZXJ2aWNlLmdldEZpbHRlcihjb2x1bW4udHlwZSk7XG5cbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXIgPSBuZXcgQ29sdW1uRmlsdGVyKCk7XG4gICAgICBjb2x1bW5GaWx0ZXIuY29sdW1uID0gY29sdW1uO1xuXG4gICAgICBpZiAodGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0pIHtcbiAgICAgICAgY29sdW1uRmlsdGVyLmZpbHRlciA9IE9iamVjdC5jcmVhdGUodGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0pO1xuICAgICAgfVxuXG4gICAgICBkaWFsb2dDb25maWcuZGF0YSA9IGNvbHVtbkZpbHRlcjtcblxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihmaWx0ZXIsIGRpYWxvZ0NvbmZpZyk7XG5cbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0gPSByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSAnJykge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQgfHwgcmVzdWx0ID09PSAnJykge1xuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjbGVhckZpbHRlcnMoKSB7XG4gICAgdGhpcy5hcHBsaWVkRmlsdGVycyA9IHt9O1xuICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZURhdGFTb3VyY2UoKSB7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBhbnk7XG4gICAgZGF0YVNvdXJjZS5maWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gIH1cblxuICBnZXRGaWx0ZXJzKCkge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmFwcGxpZWRGaWx0ZXJzO1xuICAgIGNvbnN0IGZpbHRlckFycmF5ID0gT2JqZWN0LmtleXMoZmlsdGVycykubWFwKChrZXkpID0+IGZpbHRlcnNba2V5XSk7XG4gICAgcmV0dXJuIGZpbHRlckFycmF5O1xuICB9XG5cbiAgZ2V0RmlsdGVyKGNvbHVtbk5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgZmlsdGVyQ29sdW1uID0gdGhpcy5nZXRDb2x1bW5CeU5hbWUoY29sdW1uTmFtZSk7XG5cbiAgICBpZiAoIWZpbHRlckNvbHVtbikge1xuICAgICAgdGhyb3cgRXJyb3IoYENvbHVtbiB3aXRoIG5hbWUgJyR7Y29sdW1uTmFtZX0nIGRvZXMgbm90IGV4aXN0LmApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwcGxpZWRGaWx0ZXJzW2ZpbHRlckNvbHVtbi5uYW1lXTtcbiAgfVxuXG4gIHNldEZpbHRlcihjb2x1bW5OYW1lOiBzdHJpbmcsIGZpbHRlcjogYW55KSB7XG4gICAgY29uc3QgZmlsdGVyQ29sdW1uID0gdGhpcy5nZXRDb2x1bW5CeU5hbWUoY29sdW1uTmFtZSk7XG5cbiAgICBpZiAoIWZpbHRlckNvbHVtbikge1xuICAgICAgdGhyb3cgRXJyb3IoYENhbm5vdCBzZXQgZmlsdGVyIGZvciBhIGNvbHVtbi4gQ29sdW1uIHdpdGggbmFtZSAnJHtjb2x1bW5OYW1lfScgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuXG4gICAgdGhpcy5hcHBsaWVkRmlsdGVyc1tmaWx0ZXJDb2x1bW4ubmFtZV0gPSBmaWx0ZXI7XG4gICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbHVtbkJ5TmFtZShjb2x1bW5OYW1lOiBzdHJpbmcpOiBDb2x1bW5Db25maWcge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmluZChjID0+XG4gICAgICAoYy5uYW1lID8gYy5uYW1lLnRvTG93ZXJDYXNlKCkgOiBjLm5hbWUpID09PSAoY29sdW1uTmFtZSA/IGNvbHVtbk5hbWUudG9Mb3dlckNhc2UoKSA6IGNvbHVtbk5hbWUpXG4gICAgKTtcbiAgfVxufSJdfQ== |
@@ -165,2 +165,36 @@ import { Component, ViewChild, Input, Directive, ViewContainerRef, ComponentFactoryResolver, NgModule } from '@angular/core'; | ||
} | ||
/** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
getFilter(columnName) { | ||
/** @type {?} */ | ||
const filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error(`Column with name '${columnName}' does not exist.`); | ||
} | ||
return this.appliedFilters[filterColumn.name]; | ||
} | ||
/** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
setFilter(columnName, filter) { | ||
/** @type {?} */ | ||
const filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error(`Cannot set filter for a column. Column with name '${columnName}' does not exist.`); | ||
} | ||
this.appliedFilters[filterColumn.name] = filter; | ||
this.updateDataSource(); | ||
} | ||
/** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
getColumnByName(columnName) { | ||
return this.columns.find(c => (c.name ? c.name.toLowerCase() : c.name) === (columnName ? columnName.toLowerCase() : columnName)); | ||
} | ||
} | ||
@@ -411,2 +445,2 @@ DynamicTableComponent.decorators = [ | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZHluYW1pYy10YWJsZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvY29sdW1uLWZpbHRlci5tb2RlbC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NvbHVtbi1maWx0ZXIuc2VydmljZS50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5jb21wb25lbnQudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC5kaXJlY3RpdmUudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2NvbHVtbi1jb25maWcubW9kZWwudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC10eXBlcy90ZXh0LWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY2VsbC5zZXJ2aWNlLnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvZGF0ZS1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbHVtbkZpbHRlciB7XG4gICAgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgZmlsdGVyOiBhbnk7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uRmlsdGVyU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IFR5cGU8YW55PjsgfSA9IHt9O1xuICAgIFxuICAgIHJlZ2lzdGVyRmlsdGVyKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXSA9IGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXIodHlwZTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRQYWdpbmF0b3IsIE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uRmlsdGVyIH0gZnJvbSAnLi9jb2x1bW4tZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHQtZHluYW1pYy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5Db25maWdbXTtcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTxhbnk+O1xuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDIwO1xuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnMgPSBbMjAsIDUwLCAxMDBdO1xuICBASW5wdXQoKSBzaG93RmlsdGVycyA9IHRydWU7XG4gIEBJbnB1dCgpIHN0aWNreUhlYWRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcblxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7ICBcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHByaXZhdGUgaW50ZXJuYWxQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBwcml2YXRlIGFwcGxpZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbkZpbHRlcjsgfSA9IHt9O1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb2x1bW5GaWx0ZXJTZXJ2aWNlOiBDb2x1bW5GaWx0ZXJTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGRhdGEgc291cmNlLicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb2x1bW5zID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGNvbHVtbiBkZWZpbml0aW9ucy4nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdpbmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wYWdpbmF0b3IgPSB0aGlzLmludGVybmFsUGFnaW5hdG9yO1xuICAgIH0gICAgXG5cbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4sIGluZGV4KSA9PiB0aGlzLnByZXBhcmVDb2x1bW5OYW1lKGNvbHVtbi5uYW1lLCBpbmRleCkpO1xuICAgIFxuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICBkYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICB9XG5cbiAgaXNVc2luZ0ludGVybmFsUGFnaW5hdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRvciA9PT0gdGhpcy5pbnRlcm5hbFBhZ2luYXRvcjtcbiAgfVxuXG4gIGNhbkZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgcmV0dXJuIGZpbHRlciAhPSBudWxsO1xuICB9XG5cbiAgaXNGaWx0ZXJlZChjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXTtcbiAgfVxuXG4gIHByZXBhcmVDb2x1bW5OYW1lKG5hbWU6IHN0cmluZywgY29sdW1uTnVtYmVyOiBudW1iZXIpIHsgICBcbiAgICByZXR1cm4gbmFtZSB8fCAnY29sJyArIGNvbHVtbk51bWJlcjtcbiAgfVxuXG4gIGZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgICAgY29uc3QgY29sdW1uRmlsdGVyID0gbmV3IENvbHVtbkZpbHRlcigpO1xuICAgICAgY29sdW1uRmlsdGVyLmNvbHVtbiA9IGNvbHVtbjtcblxuICAgICAgaWYgKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKSB7XG4gICAgICAgIGNvbHVtbkZpbHRlci5maWx0ZXIgPSBPYmplY3QuY3JlYXRlKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKTtcbiAgICAgIH1cblxuICAgICAgZGlhbG9nQ29uZmlnLmRhdGEgPSBjb2x1bW5GaWx0ZXI7XG4gICAgICAgIFxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihmaWx0ZXIsIGRpYWxvZ0NvbmZpZyk7XG5cbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0gPSByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSAnJykge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHJlc3VsdCB8fCByZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzID0ge307XG4gICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRGF0YVNvdXJjZSgpIHtcbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlIGFzIGFueTtcbiAgICBkYXRhU291cmNlLmZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgfVxuXG4gIGdldEZpbHRlcnMoKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuYXBwbGllZEZpbHRlcnM7XG4gICAgY29uc3QgZmlsdGVyQXJyYXkgPSBPYmplY3Qua2V5cyhmaWx0ZXJzKS5tYXAoKGtleSkgPT4gZmlsdGVyc1trZXldKTtcbiAgICByZXR1cm4gZmlsdGVyQXJyYXk7XG4gIH1cbn0iLCJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWR0Q2VsbEhvc3RdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59IiwiZXhwb3J0IGNsYXNzIENvbHVtbkNvbmZpZyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvcHRpb25zPzogYW55O1xyXG4gICAgc3RpY2t5Pzogc3RyaW5nO1xyXG4gICAgc29ydD86IGJvb2xlYW47XHJcbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi8uLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtZHQtdGV4dC1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJ3t7IHJvd1tjb2x1bW4ubmFtZV0gfX0nXG59KVxuZXhwb3J0IGNsYXNzIFRleHRDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RleHQtY2VsbC5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgQ2VsbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RlcmVkQ2VsbHM6IHsgW2tleTogc3RyaW5nXTogVHlwZTxhbnk+OyB9ID0ge307XG4gICAgXG4gICAgcmVnaXN0ZXJDZWxsKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkQ2VsbHNbdHlwZV0gPSBjb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0Q2VsbCh0eXBlOiBzdHJpbmcpOiBUeXBlPGFueT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlZ2lzdGVyZWRDZWxsc1t0eXBlXTtcblxuICAgICAgICBpZiAoY29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBUZXh0Q2VsbENvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbnB1dCwgVmlld0NoaWxkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxEaXJlY3RpdmUgfSBmcm9tICcuL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENlbGxTZXJ2aWNlIH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC10YWJsZS1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSBtZHRDZWxsSG9zdD48L25nLXRlbXBsYXRlPidcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKENlbGxEaXJlY3RpdmUpIGNlbGxIb3N0OiBDZWxsRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZWxsU2VydmljZTogQ2VsbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdENlbGwoKTtcbiAgICB9XG5cbiAgICBpbml0Q2VsbCgpIHtcbiAgICAgICAgY29uc3QgY2VsbENvbXBvbmVudCA9IHRoaXMuY2VsbFNlcnZpY2UuZ2V0Q2VsbCh0aGlzLmNvbHVtbi50eXBlKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNlbGxDb21wb25lbnQpO1xuICAgICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5jZWxsSG9zdC52aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgICAgICBjb25zdCBjZWxsID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIENlbGxDb21wb25lbnQ7XG4gICAgICAgIGNlbGwucm93ID0gdGhpcy5yb3c7XG4gICAgICAgIGNlbGwuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWR0LWRhdGUtY2VsbCcsXG4gICAgdGVtcGxhdGU6ICd7eyByb3dbY29sdW1uLm5hbWVdIHwgZGF0ZTpkYXRlRm9ybWF0IH19J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIENlbGxDb21wb25lbnQsIE9uSW5pdCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG5cbiAgICBkYXRlRm9ybWF0ID0gJ3Nob3J0JztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW4ub3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTWF0VGFibGVNb2R1bGUsXG4gIE1hdFNvcnRNb2R1bGUsXG4gIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgTWF0SWNvbk1vZHVsZSxcbiAgTWF0RGlhbG9nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcblxuaW1wb3J0IHsgRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDZWxsU2VydmljZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBDZWxsU2VydmljZSwgQ2VsbERpcmVjdGl2ZSwgQ29sdW1uRmlsdGVyU2VydmljZSB9O1xuZXhwb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gJy4vY29sdW1uLWZpbHRlci5tb2RlbCc7XG5leHBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5pbXBvcnQgeyBUZXh0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL3RleHQtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9kYXRlLWNlbGwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIENlbGxEaXJlY3RpdmUsXG4gICAgVGV4dENlbGxDb21wb25lbnQsXG4gICAgRGF0ZUNlbGxDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW0R5bmFtaWNUYWJsZUNvbXBvbmVudF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIFRleHRDZWxsQ29tcG9uZW50LFxuICAgIERhdGVDZWxsQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIENlbGxTZXJ2aWNlLFxuICAgIENvbHVtbkZpbHRlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBDZWxsU2VydmljZSkge1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnc3RyaW5nJywgVGV4dENlbGxDb21wb25lbnQpO1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnZGF0ZScsIERhdGVDZWxsQ29tcG9uZW50KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLE1BQWEsWUFBWTtDQUd4Qjs7Ozs7O0FDSEQsTUFBYSxtQkFBbUI7SUFBaEM7UUFFWSxz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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZHluYW1pYy10YWJsZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvY29sdW1uLWZpbHRlci5tb2RlbC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NvbHVtbi1maWx0ZXIuc2VydmljZS50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5jb21wb25lbnQudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC5kaXJlY3RpdmUudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2NvbHVtbi1jb25maWcubW9kZWwudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC10eXBlcy90ZXh0LWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY2VsbC5zZXJ2aWNlLnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvZGF0ZS1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbHVtbkZpbHRlciB7XG4gICAgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgZmlsdGVyOiBhbnk7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uRmlsdGVyU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IFR5cGU8YW55PjsgfSA9IHt9O1xuICAgIFxuICAgIHJlZ2lzdGVyRmlsdGVyKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXSA9IGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXIodHlwZTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRQYWdpbmF0b3IsIE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uRmlsdGVyIH0gZnJvbSAnLi9jb2x1bW4tZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHQtZHluYW1pYy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5Db25maWdbXTtcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTxhbnk+O1xuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDIwO1xuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnMgPSBbMjAsIDUwLCAxMDBdO1xuICBASW5wdXQoKSBzaG93RmlsdGVycyA9IHRydWU7XG4gIEBJbnB1dCgpIHN0aWNreUhlYWRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcblxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwcml2YXRlIGludGVybmFsUGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgcHJpdmF0ZSBhcHBsaWVkRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbHVtbkZpbHRlclNlcnZpY2U6IENvbHVtbkZpbHRlclNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggZGF0YSBzb3VyY2UuJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbHVtbnMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggY29sdW1uIGRlZmluaXRpb25zLicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2luYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnBhZ2luYXRvciA9IHRoaXMuaW50ZXJuYWxQYWdpbmF0b3I7XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uLCBpbmRleCkgPT4gdGhpcy5wcmVwYXJlQ29sdW1uTmFtZShjb2x1bW4ubmFtZSwgaW5kZXgpKTtcblxuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICBkYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICB9XG5cbiAgaXNVc2luZ0ludGVybmFsUGFnaW5hdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRvciA9PT0gdGhpcy5pbnRlcm5hbFBhZ2luYXRvcjtcbiAgfVxuXG4gIGNhbkZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgcmV0dXJuIGZpbHRlciAhPSBudWxsO1xuICB9XG5cbiAgaXNGaWx0ZXJlZChjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXTtcbiAgfVxuXG4gIHByZXBhcmVDb2x1bW5OYW1lKG5hbWU6IHN0cmluZywgY29sdW1uTnVtYmVyOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmFtZSB8fCAnY29sJyArIGNvbHVtbk51bWJlcjtcbiAgfVxuXG4gIGZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgICAgY29uc3QgY29sdW1uRmlsdGVyID0gbmV3IENvbHVtbkZpbHRlcigpO1xuICAgICAgY29sdW1uRmlsdGVyLmNvbHVtbiA9IGNvbHVtbjtcblxuICAgICAgaWYgKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKSB7XG4gICAgICAgIGNvbHVtbkZpbHRlci5maWx0ZXIgPSBPYmplY3QuY3JlYXRlKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKTtcbiAgICAgIH1cblxuICAgICAgZGlhbG9nQ29uZmlnLmRhdGEgPSBjb2x1bW5GaWx0ZXI7XG5cbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oZmlsdGVyLCBkaWFsb2dDb25maWcpO1xuXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdID0gcmVzdWx0O1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJycpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzdWx0IHx8IHJlc3VsdCA9PT0gJycpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuYXBwbGllZEZpbHRlcnMgPSB7fTtcbiAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVEYXRhU291cmNlKCkge1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2UuZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5hcHBsaWVkRmlsdGVycztcbiAgICBjb25zdCBmaWx0ZXJBcnJheSA9IE9iamVjdC5rZXlzKGZpbHRlcnMpLm1hcCgoa2V5KSA9PiBmaWx0ZXJzW2tleV0pO1xuICAgIHJldHVybiBmaWx0ZXJBcnJheTtcbiAgfVxuXG4gIGdldEZpbHRlcihjb2x1bW5OYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uQnlOYW1lKGNvbHVtbk5hbWUpO1xuXG4gICAgaWYgKCFmaWx0ZXJDb2x1bW4pIHtcbiAgICAgIHRocm93IEVycm9yKGBDb2x1bW4gd2l0aCBuYW1lICcke2NvbHVtbk5hbWV9JyBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcHBsaWVkRmlsdGVyc1tmaWx0ZXJDb2x1bW4ubmFtZV07XG4gIH1cblxuICBzZXRGaWx0ZXIoY29sdW1uTmFtZTogc3RyaW5nLCBmaWx0ZXI6IGFueSkge1xuICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uQnlOYW1lKGNvbHVtbk5hbWUpO1xuXG4gICAgaWYgKCFmaWx0ZXJDb2x1bW4pIHtcbiAgICAgIHRocm93IEVycm9yKGBDYW5ub3Qgc2V0IGZpbHRlciBmb3IgYSBjb2x1bW4uIENvbHVtbiB3aXRoIG5hbWUgJyR7Y29sdW1uTmFtZX0nIGRvZXMgbm90IGV4aXN0LmApO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbZmlsdGVyQ29sdW1uLm5hbWVdID0gZmlsdGVyO1xuICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5CeU5hbWUoY29sdW1uTmFtZTogc3RyaW5nKTogQ29sdW1uQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbmQoYyA9PlxuICAgICAgKGMubmFtZSA/IGMubmFtZS50b0xvd2VyQ2FzZSgpIDogYy5uYW1lKSA9PT0gKGNvbHVtbk5hbWUgPyBjb2x1bW5OYW1lLnRvTG93ZXJDYXNlKCkgOiBjb2x1bW5OYW1lKVxuICAgICk7XG4gIH1cbn0iLCJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWR0Q2VsbEhvc3RdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59IiwiZXhwb3J0IGNsYXNzIENvbHVtbkNvbmZpZyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvcHRpb25zPzogYW55O1xyXG4gICAgc3RpY2t5Pzogc3RyaW5nO1xyXG4gICAgc29ydD86IGJvb2xlYW47XHJcbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi8uLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtZHQtdGV4dC1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJ3t7IHJvd1tjb2x1bW4ubmFtZV0gfX0nXG59KVxuZXhwb3J0IGNsYXNzIFRleHRDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RleHQtY2VsbC5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgQ2VsbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RlcmVkQ2VsbHM6IHsgW2tleTogc3RyaW5nXTogVHlwZTxhbnk+OyB9ID0ge307XG4gICAgXG4gICAgcmVnaXN0ZXJDZWxsKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkQ2VsbHNbdHlwZV0gPSBjb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0Q2VsbCh0eXBlOiBzdHJpbmcpOiBUeXBlPGFueT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlZ2lzdGVyZWRDZWxsc1t0eXBlXTtcblxuICAgICAgICBpZiAoY29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBUZXh0Q2VsbENvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbnB1dCwgVmlld0NoaWxkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxEaXJlY3RpdmUgfSBmcm9tICcuL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENlbGxTZXJ2aWNlIH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC10YWJsZS1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSBtZHRDZWxsSG9zdD48L25nLXRlbXBsYXRlPidcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKENlbGxEaXJlY3RpdmUpIGNlbGxIb3N0OiBDZWxsRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZWxsU2VydmljZTogQ2VsbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdENlbGwoKTtcbiAgICB9XG5cbiAgICBpbml0Q2VsbCgpIHtcbiAgICAgICAgY29uc3QgY2VsbENvbXBvbmVudCA9IHRoaXMuY2VsbFNlcnZpY2UuZ2V0Q2VsbCh0aGlzLmNvbHVtbi50eXBlKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNlbGxDb21wb25lbnQpO1xuICAgICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5jZWxsSG9zdC52aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgICAgICBjb25zdCBjZWxsID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIENlbGxDb21wb25lbnQ7XG4gICAgICAgIGNlbGwucm93ID0gdGhpcy5yb3c7XG4gICAgICAgIGNlbGwuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWR0LWRhdGUtY2VsbCcsXG4gICAgdGVtcGxhdGU6ICd7eyByb3dbY29sdW1uLm5hbWVdIHwgZGF0ZTpkYXRlRm9ybWF0IH19J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIENlbGxDb21wb25lbnQsIE9uSW5pdCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG5cbiAgICBkYXRlRm9ybWF0ID0gJ3Nob3J0JztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW4ub3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTWF0VGFibGVNb2R1bGUsXG4gIE1hdFNvcnRNb2R1bGUsXG4gIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgTWF0SWNvbk1vZHVsZSxcbiAgTWF0RGlhbG9nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcblxuaW1wb3J0IHsgRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDZWxsU2VydmljZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBDZWxsU2VydmljZSwgQ2VsbERpcmVjdGl2ZSwgQ29sdW1uRmlsdGVyU2VydmljZSB9O1xuZXhwb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gJy4vY29sdW1uLWZpbHRlci5tb2RlbCc7XG5leHBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5pbXBvcnQgeyBUZXh0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL3RleHQtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9kYXRlLWNlbGwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIENlbGxEaXJlY3RpdmUsXG4gICAgVGV4dENlbGxDb21wb25lbnQsXG4gICAgRGF0ZUNlbGxDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW0R5bmFtaWNUYWJsZUNvbXBvbmVudF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIFRleHRDZWxsQ29tcG9uZW50LFxuICAgIERhdGVDZWxsQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIENlbGxTZXJ2aWNlLFxuICAgIENvbHVtbkZpbHRlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBDZWxsU2VydmljZSkge1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnc3RyaW5nJywgVGV4dENlbGxDb21wb25lbnQpO1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnZGF0ZScsIERhdGVDZWxsQ29tcG9uZW50KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLE1BQWEsWUFBWTtDQUd4Qjs7Ozs7O0FDSEQsTUFBYSxtQkFBbUI7SUFBaEM7UUFFWSxzQkFBaUIsR0FBa0MsRUFBRSxDQUFDO0tBV2pFOzs7Ozs7SUFURyxjQUFjLENBQUMsSUFBWSxFQUFFLFNBQW9CO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENB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 |
@@ -209,2 +209,52 @@ import { Component, ViewChild, Input, Directive, ViewContainerRef, ComponentFactoryResolver, NgModule } from '@angular/core'; | ||
}; | ||
/** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.getFilter = /** | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
function (columnName) { | ||
/** @type {?} */ | ||
var filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error("Column with name '" + columnName + "' does not exist."); | ||
} | ||
return this.appliedFilters[filterColumn.name]; | ||
}; | ||
/** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.setFilter = /** | ||
* @param {?} columnName | ||
* @param {?} filter | ||
* @return {?} | ||
*/ | ||
function (columnName, filter) { | ||
/** @type {?} */ | ||
var filterColumn = this.getColumnByName(columnName); | ||
if (!filterColumn) { | ||
throw Error("Cannot set filter for a column. Column with name '" + columnName + "' does not exist."); | ||
} | ||
this.appliedFilters[filterColumn.name] = filter; | ||
this.updateDataSource(); | ||
}; | ||
/** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
DynamicTableComponent.prototype.getColumnByName = /** | ||
* @private | ||
* @param {?} columnName | ||
* @return {?} | ||
*/ | ||
function (columnName) { | ||
return this.columns.find(function (c) { | ||
return (c.name ? c.name.toLowerCase() : c.name) === (columnName ? columnName.toLowerCase() : columnName); | ||
}); | ||
}; | ||
DynamicTableComponent.decorators = [ | ||
@@ -475,2 +525,2 @@ { type: Component, args: [{ | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZHluYW1pYy10YWJsZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvY29sdW1uLWZpbHRlci5tb2RlbC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NvbHVtbi1maWx0ZXIuc2VydmljZS50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5jb21wb25lbnQudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC5kaXJlY3RpdmUudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2NvbHVtbi1jb25maWcubW9kZWwudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC10eXBlcy90ZXh0LWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY2VsbC5zZXJ2aWNlLnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvZGF0ZS1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbHVtbkZpbHRlciB7XG4gICAgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgZmlsdGVyOiBhbnk7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uRmlsdGVyU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IFR5cGU8YW55PjsgfSA9IHt9O1xuICAgIFxuICAgIHJlZ2lzdGVyRmlsdGVyKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXSA9IGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXIodHlwZTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRQYWdpbmF0b3IsIE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uRmlsdGVyIH0gZnJvbSAnLi9jb2x1bW4tZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHQtZHluYW1pYy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5Db25maWdbXTtcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTxhbnk+O1xuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDIwO1xuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnMgPSBbMjAsIDUwLCAxMDBdO1xuICBASW5wdXQoKSBzaG93RmlsdGVycyA9IHRydWU7XG4gIEBJbnB1dCgpIHN0aWNreUhlYWRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcblxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7ICBcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHByaXZhdGUgaW50ZXJuYWxQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBwcml2YXRlIGFwcGxpZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbkZpbHRlcjsgfSA9IHt9O1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb2x1bW5GaWx0ZXJTZXJ2aWNlOiBDb2x1bW5GaWx0ZXJTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGRhdGEgc291cmNlLicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb2x1bW5zID09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKCdEeW5hbWljVGFibGUgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGNvbHVtbiBkZWZpbml0aW9ucy4nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdpbmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wYWdpbmF0b3IgPSB0aGlzLmludGVybmFsUGFnaW5hdG9yO1xuICAgIH0gICAgXG5cbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4sIGluZGV4KSA9PiB0aGlzLnByZXBhcmVDb2x1bW5OYW1lKGNvbHVtbi5uYW1lLCBpbmRleCkpO1xuICAgIFxuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICBkYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICB9XG5cbiAgaXNVc2luZ0ludGVybmFsUGFnaW5hdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRvciA9PT0gdGhpcy5pbnRlcm5hbFBhZ2luYXRvcjtcbiAgfVxuXG4gIGNhbkZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgcmV0dXJuIGZpbHRlciAhPSBudWxsO1xuICB9XG5cbiAgaXNGaWx0ZXJlZChjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXTtcbiAgfVxuXG4gIHByZXBhcmVDb2x1bW5OYW1lKG5hbWU6IHN0cmluZywgY29sdW1uTnVtYmVyOiBudW1iZXIpIHsgICBcbiAgICByZXR1cm4gbmFtZSB8fCAnY29sJyArIGNvbHVtbk51bWJlcjtcbiAgfVxuXG4gIGZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgICAgY29uc3QgY29sdW1uRmlsdGVyID0gbmV3IENvbHVtbkZpbHRlcigpO1xuICAgICAgY29sdW1uRmlsdGVyLmNvbHVtbiA9IGNvbHVtbjtcblxuICAgICAgaWYgKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKSB7XG4gICAgICAgIGNvbHVtbkZpbHRlci5maWx0ZXIgPSBPYmplY3QuY3JlYXRlKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKTtcbiAgICAgIH1cblxuICAgICAgZGlhbG9nQ29uZmlnLmRhdGEgPSBjb2x1bW5GaWx0ZXI7XG4gICAgICAgIFxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihmaWx0ZXIsIGRpYWxvZ0NvbmZpZyk7XG5cbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV0gPSByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSAnJykge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHJlc3VsdCB8fCByZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzID0ge307XG4gICAgdGhpcy51cGRhdGVEYXRhU291cmNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRGF0YVNvdXJjZSgpIHtcbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlIGFzIGFueTtcbiAgICBkYXRhU291cmNlLmZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgfVxuXG4gIGdldEZpbHRlcnMoKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuYXBwbGllZEZpbHRlcnM7XG4gICAgY29uc3QgZmlsdGVyQXJyYXkgPSBPYmplY3Qua2V5cyhmaWx0ZXJzKS5tYXAoKGtleSkgPT4gZmlsdGVyc1trZXldKTtcbiAgICByZXR1cm4gZmlsdGVyQXJyYXk7XG4gIH1cbn0iLCJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWR0Q2VsbEhvc3RdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59IiwiZXhwb3J0IGNsYXNzIENvbHVtbkNvbmZpZyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvcHRpb25zPzogYW55O1xyXG4gICAgc3RpY2t5Pzogc3RyaW5nO1xyXG4gICAgc29ydD86IGJvb2xlYW47XHJcbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi8uLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtZHQtdGV4dC1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJ3t7IHJvd1tjb2x1bW4ubmFtZV0gfX0nXG59KVxuZXhwb3J0IGNsYXNzIFRleHRDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RleHQtY2VsbC5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgQ2VsbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RlcmVkQ2VsbHM6IHsgW2tleTogc3RyaW5nXTogVHlwZTxhbnk+OyB9ID0ge307XG4gICAgXG4gICAgcmVnaXN0ZXJDZWxsKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkQ2VsbHNbdHlwZV0gPSBjb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0Q2VsbCh0eXBlOiBzdHJpbmcpOiBUeXBlPGFueT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlZ2lzdGVyZWRDZWxsc1t0eXBlXTtcblxuICAgICAgICBpZiAoY29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBUZXh0Q2VsbENvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbnB1dCwgVmlld0NoaWxkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxEaXJlY3RpdmUgfSBmcm9tICcuL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENlbGxTZXJ2aWNlIH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC10YWJsZS1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSBtZHRDZWxsSG9zdD48L25nLXRlbXBsYXRlPidcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKENlbGxEaXJlY3RpdmUpIGNlbGxIb3N0OiBDZWxsRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZWxsU2VydmljZTogQ2VsbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdENlbGwoKTtcbiAgICB9XG5cbiAgICBpbml0Q2VsbCgpIHtcbiAgICAgICAgY29uc3QgY2VsbENvbXBvbmVudCA9IHRoaXMuY2VsbFNlcnZpY2UuZ2V0Q2VsbCh0aGlzLmNvbHVtbi50eXBlKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNlbGxDb21wb25lbnQpO1xuICAgICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5jZWxsSG9zdC52aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgICAgICBjb25zdCBjZWxsID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIENlbGxDb21wb25lbnQ7XG4gICAgICAgIGNlbGwucm93ID0gdGhpcy5yb3c7XG4gICAgICAgIGNlbGwuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWR0LWRhdGUtY2VsbCcsXG4gICAgdGVtcGxhdGU6ICd7eyByb3dbY29sdW1uLm5hbWVdIHwgZGF0ZTpkYXRlRm9ybWF0IH19J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIENlbGxDb21wb25lbnQsIE9uSW5pdCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG5cbiAgICBkYXRlRm9ybWF0ID0gJ3Nob3J0JztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW4ub3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTWF0VGFibGVNb2R1bGUsXG4gIE1hdFNvcnRNb2R1bGUsXG4gIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgTWF0SWNvbk1vZHVsZSxcbiAgTWF0RGlhbG9nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcblxuaW1wb3J0IHsgRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDZWxsU2VydmljZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBDZWxsU2VydmljZSwgQ2VsbERpcmVjdGl2ZSwgQ29sdW1uRmlsdGVyU2VydmljZSB9O1xuZXhwb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gJy4vY29sdW1uLWZpbHRlci5tb2RlbCc7XG5leHBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5pbXBvcnQgeyBUZXh0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL3RleHQtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9kYXRlLWNlbGwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIENlbGxEaXJlY3RpdmUsXG4gICAgVGV4dENlbGxDb21wb25lbnQsXG4gICAgRGF0ZUNlbGxDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW0R5bmFtaWNUYWJsZUNvbXBvbmVudF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIFRleHRDZWxsQ29tcG9uZW50LFxuICAgIERhdGVDZWxsQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIENlbGxTZXJ2aWNlLFxuICAgIENvbHVtbkZpbHRlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBDZWxsU2VydmljZSkge1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnc3RyaW5nJywgVGV4dENlbGxDb21wb25lbnQpO1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnZGF0ZScsIERhdGVDZWxsQ29tcG9uZW50KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBO0lBQUE7S0FHQztJQUFELG1CQUFDO0NBQUE7Ozs7OztBQ0hEO0lBQUE7UUFFWSxzQkFB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZHluYW1pYy10YWJsZS5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvY29sdW1uLWZpbHRlci5tb2RlbC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NvbHVtbi1maWx0ZXIuc2VydmljZS50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5jb21wb25lbnQudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC5kaXJlY3RpdmUudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL2NvbHVtbi1jb25maWcubW9kZWwudHMiLCJuZzovL21hdGVyaWFsLWR5bmFtaWMtdGFibGUvbGliL3RhYmxlLWNlbGwvY2VsbC10eXBlcy90ZXh0LWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvY2VsbC5zZXJ2aWNlLnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwibmc6Ly9tYXRlcmlhbC1keW5hbWljLXRhYmxlL2xpYi90YWJsZS1jZWxsL2NlbGwtdHlwZXMvZGF0ZS1jZWxsLmNvbXBvbmVudC50cyIsIm5nOi8vbWF0ZXJpYWwtZHluYW1pYy10YWJsZS9saWIvZHluYW1pYy10YWJsZS5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbHVtbkZpbHRlciB7XG4gICAgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgZmlsdGVyOiBhbnk7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uRmlsdGVyU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IFR5cGU8YW55PjsgfSA9IHt9O1xuICAgIFxuICAgIHJlZ2lzdGVyRmlsdGVyKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXSA9IGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXIodHlwZTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5yZWdpc3RlcmVkRmlsdGVyc1t0eXBlXTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRQYWdpbmF0b3IsIE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uRmlsdGVyIH0gZnJvbSAnLi9jb2x1bW4tZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZHQtZHluYW1pYy10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5Db25maWdbXTtcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTxhbnk+O1xuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDIwO1xuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnMgPSBbMjAsIDUwLCAxMDBdO1xuICBASW5wdXQoKSBzaG93RmlsdGVycyA9IHRydWU7XG4gIEBJbnB1dCgpIHN0aWNreUhlYWRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcblxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwcml2YXRlIGludGVybmFsUGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgcHJpdmF0ZSBhcHBsaWVkRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbHVtbkZpbHRlclNlcnZpY2U6IENvbHVtbkZpbHRlclNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2cpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggZGF0YSBzb3VyY2UuJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbHVtbnMgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0R5bmFtaWNUYWJsZSBtdXN0IGJlIHByb3ZpZGVkIHdpdGggY29sdW1uIGRlZmluaXRpb25zLicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2luYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnBhZ2luYXRvciA9IHRoaXMuaW50ZXJuYWxQYWdpbmF0b3I7XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uLCBpbmRleCkgPT4gdGhpcy5wcmVwYXJlQ29sdW1uTmFtZShjb2x1bW4ubmFtZSwgaW5kZXgpKTtcblxuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICBkYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICB9XG5cbiAgaXNVc2luZ0ludGVybmFsUGFnaW5hdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRvciA9PT0gdGhpcy5pbnRlcm5hbFBhZ2luYXRvcjtcbiAgfVxuXG4gIGNhbkZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgcmV0dXJuIGZpbHRlciAhPSBudWxsO1xuICB9XG5cbiAgaXNGaWx0ZXJlZChjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmFwcGxpZWRGaWx0ZXJzW2NvbHVtbi5uYW1lXTtcbiAgfVxuXG4gIHByZXBhcmVDb2x1bW5OYW1lKG5hbWU6IHN0cmluZywgY29sdW1uTnVtYmVyOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmFtZSB8fCAnY29sJyArIGNvbHVtbk51bWJlcjtcbiAgfVxuXG4gIGZpbHRlcihjb2x1bW46IENvbHVtbkNvbmZpZykge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29sdW1uRmlsdGVyU2VydmljZS5nZXRGaWx0ZXIoY29sdW1uLnR5cGUpO1xuXG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgICAgY29uc3QgY29sdW1uRmlsdGVyID0gbmV3IENvbHVtbkZpbHRlcigpO1xuICAgICAgY29sdW1uRmlsdGVyLmNvbHVtbiA9IGNvbHVtbjtcblxuICAgICAgaWYgKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKSB7XG4gICAgICAgIGNvbHVtbkZpbHRlci5maWx0ZXIgPSBPYmplY3QuY3JlYXRlKHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdKTtcbiAgICAgIH1cblxuICAgICAgZGlhbG9nQ29uZmlnLmRhdGEgPSBjb2x1bW5GaWx0ZXI7XG5cbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oZmlsdGVyLCBkaWFsb2dDb25maWcpO1xuXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sdW1uLm5hbWVdID0gcmVzdWx0O1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJycpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2x1bW4ubmFtZV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzdWx0IHx8IHJlc3VsdCA9PT0gJycpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuYXBwbGllZEZpbHRlcnMgPSB7fTtcbiAgICB0aGlzLnVwZGF0ZURhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVEYXRhU291cmNlKCkge1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgYW55O1xuICAgIGRhdGFTb3VyY2UuZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5hcHBsaWVkRmlsdGVycztcbiAgICBjb25zdCBmaWx0ZXJBcnJheSA9IE9iamVjdC5rZXlzKGZpbHRlcnMpLm1hcCgoa2V5KSA9PiBmaWx0ZXJzW2tleV0pO1xuICAgIHJldHVybiBmaWx0ZXJBcnJheTtcbiAgfVxuXG4gIGdldEZpbHRlcihjb2x1bW5OYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uQnlOYW1lKGNvbHVtbk5hbWUpO1xuXG4gICAgaWYgKCFmaWx0ZXJDb2x1bW4pIHtcbiAgICAgIHRocm93IEVycm9yKGBDb2x1bW4gd2l0aCBuYW1lICcke2NvbHVtbk5hbWV9JyBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcHBsaWVkRmlsdGVyc1tmaWx0ZXJDb2x1bW4ubmFtZV07XG4gIH1cblxuICBzZXRGaWx0ZXIoY29sdW1uTmFtZTogc3RyaW5nLCBmaWx0ZXI6IGFueSkge1xuICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uQnlOYW1lKGNvbHVtbk5hbWUpO1xuXG4gICAgaWYgKCFmaWx0ZXJDb2x1bW4pIHtcbiAgICAgIHRocm93IEVycm9yKGBDYW5ub3Qgc2V0IGZpbHRlciBmb3IgYSBjb2x1bW4uIENvbHVtbiB3aXRoIG5hbWUgJyR7Y29sdW1uTmFtZX0nIGRvZXMgbm90IGV4aXN0LmApO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbZmlsdGVyQ29sdW1uLm5hbWVdID0gZmlsdGVyO1xuICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5CeU5hbWUoY29sdW1uTmFtZTogc3RyaW5nKTogQ29sdW1uQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbmQoYyA9PlxuICAgICAgKGMubmFtZSA/IGMubmFtZS50b0xvd2VyQ2FzZSgpIDogYy5uYW1lKSA9PT0gKGNvbHVtbk5hbWUgPyBjb2x1bW5OYW1lLnRvTG93ZXJDYXNlKCkgOiBjb2x1bW5OYW1lKVxuICAgICk7XG4gIH1cbn0iLCJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWR0Q2VsbEhvc3RdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbERpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59IiwiZXhwb3J0IGNsYXNzIENvbHVtbkNvbmZpZyB7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICB0eXBlOiBzdHJpbmc7XHJcbiAgICBvcHRpb25zPzogYW55O1xyXG4gICAgc3RpY2t5Pzogc3RyaW5nO1xyXG4gICAgc29ydD86IGJvb2xlYW47XHJcbn0iLCJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi8uLi9jb2x1bW4tY29uZmlnLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtZHQtdGV4dC1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJ3t7IHJvd1tjb2x1bW4ubmFtZV0gfX0nXG59KVxuZXhwb3J0IGNsYXNzIFRleHRDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG59IiwiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dENlbGxDb21wb25lbnQgfSBmcm9tICcuL3RleHQtY2VsbC5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgQ2VsbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RlcmVkQ2VsbHM6IHsgW2tleTogc3RyaW5nXTogVHlwZTxhbnk+OyB9ID0ge307XG4gICAgXG4gICAgcmVnaXN0ZXJDZWxsKHR5cGU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkQ2VsbHNbdHlwZV0gPSBjb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0Q2VsbCh0eXBlOiBzdHJpbmcpOiBUeXBlPGFueT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlZ2lzdGVyZWRDZWxsc1t0eXBlXTtcblxuICAgICAgICBpZiAoY29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBUZXh0Q2VsbENvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbnB1dCwgVmlld0NoaWxkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxEaXJlY3RpdmUgfSBmcm9tICcuL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENlbGxTZXJ2aWNlIH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4uL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21kdC10YWJsZS1jZWxsJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSBtZHRDZWxsSG9zdD48L25nLXRlbXBsYXRlPidcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKENlbGxEaXJlY3RpdmUpIGNlbGxIb3N0OiBDZWxsRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZWxsU2VydmljZTogQ2VsbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdENlbGwoKTtcbiAgICB9XG5cbiAgICBpbml0Q2VsbCgpIHtcbiAgICAgICAgY29uc3QgY2VsbENvbXBvbmVudCA9IHRoaXMuY2VsbFNlcnZpY2UuZ2V0Q2VsbCh0aGlzLmNvbHVtbi50eXBlKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNlbGxDb21wb25lbnQpO1xuICAgICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5jZWxsSG9zdC52aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgICAgICBjb25zdCBjZWxsID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIENlbGxDb21wb25lbnQ7XG4gICAgICAgIGNlbGwucm93ID0gdGhpcy5yb3c7XG4gICAgICAgIGNlbGwuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgfVxufSIsImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29sdW1uLWNvbmZpZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWR0LWRhdGUtY2VsbCcsXG4gICAgdGVtcGxhdGU6ICd7eyByb3dbY29sdW1uLm5hbWVdIHwgZGF0ZTpkYXRlRm9ybWF0IH19J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIENlbGxDb21wb25lbnQsIE9uSW5pdCB7XG4gICAgQElucHV0KCkgY29sdW1uOiBDb2x1bW5Db25maWc7XG4gICAgQElucHV0KCkgcm93OiBvYmplY3Q7XG5cbiAgICBkYXRlRm9ybWF0ID0gJ3Nob3J0JztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW4ub3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHRoaXMuY29sdW1uLm9wdGlvbnMuZGF0ZUZvcm1hdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTWF0VGFibGVNb2R1bGUsXG4gIE1hdFNvcnRNb2R1bGUsXG4gIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgTWF0SWNvbk1vZHVsZSxcbiAgTWF0RGlhbG9nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcblxuaW1wb3J0IHsgRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDZWxsU2VydmljZSB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi90YWJsZS1jZWxsL2NlbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbHVtbkZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9jb2x1bW4tZmlsdGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBDZWxsU2VydmljZSwgQ2VsbERpcmVjdGl2ZSwgQ29sdW1uRmlsdGVyU2VydmljZSB9O1xuZXhwb3J0IHsgQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL2NlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7IENvbHVtbkZpbHRlciB9IGZyb20gJy4vY29sdW1uLWZpbHRlci5tb2RlbCc7XG5leHBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL2NvbHVtbi1jb25maWcubW9kZWwnO1xuXG5pbXBvcnQgeyBUZXh0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC9jZWxsLXR5cGVzL3RleHQtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwvY2VsbC10eXBlcy9kYXRlLWNlbGwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIENlbGxEaXJlY3RpdmUsXG4gICAgVGV4dENlbGxDb21wb25lbnQsXG4gICAgRGF0ZUNlbGxDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW0R5bmFtaWNUYWJsZUNvbXBvbmVudF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIFRleHRDZWxsQ29tcG9uZW50LFxuICAgIERhdGVDZWxsQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIENlbGxTZXJ2aWNlLFxuICAgIENvbHVtbkZpbHRlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGFibGVNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBDZWxsU2VydmljZSkge1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnc3RyaW5nJywgVGV4dENlbGxDb21wb25lbnQpO1xuICAgIGNlbGxTZXJ2aWNlLnJlZ2lzdGVyQ2VsbCgnZGF0ZScsIERhdGVDZWxsQ29tcG9uZW50KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBO0lBQUE7S0FHQztJQUFELG1CQUFDO0NBQUE7Ozs7OztBQ0hEO0lBQUE7UUFFWSxzQkFBaUIsR0FBa0MsRUFBRSxDQUFDO0tBV2pFOzs7Ozs7SUFURyw0Q0FBYzs7Ozs7SUFBZCxVQUFlLElBQVksRUFBRSxTQUFvQjtRQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcs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 |
@@ -5,3 +5,2 @@ import { OnInit } from '@angular/core'; | ||
import { ColumnConfig } from './column-config.model'; | ||
import { ColumnFilter } from './column-filter.model'; | ||
import { ColumnFilterService } from './table-cell/cell-types/column-filter.service'; | ||
@@ -26,3 +25,3 @@ export declare class DynamicTableComponent implements OnInit { | ||
canFilter(column: ColumnConfig): boolean; | ||
isFiltered(column: ColumnConfig): ColumnFilter; | ||
isFiltered(column: ColumnConfig): any; | ||
prepareColumnName(name: string, columnNumber: number): string; | ||
@@ -32,3 +31,6 @@ filter(column: ColumnConfig): void; | ||
protected updateDataSource(): void; | ||
getFilters(): ColumnFilter[]; | ||
getFilters(): any[]; | ||
getFilter(columnName: string): any; | ||
setFilter(columnName: string, filter: any): void; | ||
private getColumnByName; | ||
} |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"DynamicTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"mdt-dynamic-table","template":"<table mat-table [dataSource]=\"dataSource\"\r\n matSort matSortDirection=\"asc\">\r\n\r\n <ng-container *ngFor=\"let column of columns; let i = index\" matColumnDef=\"{{ prepareColumnName(column.name, i) }}\"\r\n [sticky]=\"column.sticky === 'start'\" [stickyEnd]=\"column.sticky === 'end'\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"{{ prepareColumnName(column.name, i) }}\" [disabled]=\"!column.name || column.sort === false\">\r\n {{ column.displayName }}\r\n <button class=\"mat-sort-header-button\" *ngIf=\"showFilters && canFilter(column)\" (click)=\"filter(column); $event.stopPropagation();\">\r\n <mat-icon color=\"{{ isFiltered(column) ? 'primary' : 'default' }}\">filter_list</mat-icon>\r\n </button>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\"><mdt-table-cell [row]=\"row\" [column]=\"column\"></mdt-table-cell></td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: [stickyHeader]\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n</table>\r\n<mat-paginator [hidden]=\"!isUsingInternalPaginator()\" [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\">\r\n</mat-paginator>","styles":["table{width:100%}th .mat-icon.mat-default{opacity:.54}th .mat-icon.mat-default:hover{opacity:1}[hidden]{display:none}"]}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"dataSource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"pageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"pageSizeOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"showFilters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"stickyHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"paginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":24,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatSort","line":24,"character":13}]}]}],"internalPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":25,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatPaginator","line":25,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ColumnFilterService"},{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":29,"character":98}]}],"ngOnInit":[{"__symbolic":"method"}],"isUsingInternalPaginator":[{"__symbolic":"method"}],"canFilter":[{"__symbolic":"method"}],"isFiltered":[{"__symbolic":"method"}],"prepareColumnName":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"clearFilters":[{"__symbolic":"method"}],"updateDataSource":[{"__symbolic":"method"}],"getFilters":[{"__symbolic":"method"}]}},"CellService":{"__symbolic":"class","members":{"registerCell":[{"__symbolic":"method"}],"getCell":[{"__symbolic":"method"}]}},"CellDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[mdtCellHost]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":6,"character":41}]}]}},"ColumnFilterService":{"__symbolic":"class","members":{"registerFilter":[{"__symbolic":"method"}],"getFilter":[{"__symbolic":"method"}]}},"DynamicTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSortModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":32,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":33,"character":4}],"declarations":[{"__symbolic":"reference","name":"DynamicTableComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"CellDirective"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"exports":[{"__symbolic":"reference","name":"DynamicTableComponent"}],"entryComponents":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"CellService"},{"__symbolic":"reference","name":"ColumnFilterService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CellService"}]}]}},"CellComponent":{"__symbolic":"interface"},"ColumnFilter":{"__symbolic":"class","members":{}},"ColumnConfig":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"mdt-table-cell","template":"<ng-template mdtCellHost></ng-template>"}]}],"members":{"cellHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":11,"character":5},"arguments":[{"__symbolic":"reference","name":"CellDirective"}]}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":5}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CellService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":18,"character":51}]}],"ngOnInit":[{"__symbolic":"method"}],"initCell":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"mdt-text-cell","template":"{{ row[column.name] }}"}]}],"members":{"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"mdt-date-cell","template":"{{ row[column.name] | date:dateFormat }}"}]}],"members":{"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"DynamicTableComponent":"./lib/dynamic-table.component","CellService":"./lib/table-cell/cell-types/cell.service","CellDirective":"./lib/table-cell/cell.directive","ColumnFilterService":"./lib/table-cell/cell-types/column-filter.service","DynamicTableModule":"./lib/dynamic-table.module","CellComponent":"./lib/table-cell/cell-types/cell.component","ColumnFilter":"./lib/column-filter.model","ColumnConfig":"./lib/column-config.model","ɵa":"./lib/table-cell/table-cell.component","ɵb":"./lib/table-cell/cell-types/text-cell.component","ɵc":"./lib/table-cell/cell-types/date-cell.component"},"importAs":"material-dynamic-table"} | ||
{"__symbolic":"module","version":4,"metadata":{"DynamicTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"mdt-dynamic-table","template":"<table mat-table [dataSource]=\"dataSource\"\r\n matSort matSortDirection=\"asc\">\r\n\r\n <ng-container *ngFor=\"let column of columns; let i = index\" matColumnDef=\"{{ prepareColumnName(column.name, i) }}\"\r\n [sticky]=\"column.sticky === 'start'\" [stickyEnd]=\"column.sticky === 'end'\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"{{ prepareColumnName(column.name, i) }}\" [disabled]=\"!column.name || column.sort === false\">\r\n {{ column.displayName }}\r\n <button class=\"mat-sort-header-button\" *ngIf=\"showFilters && canFilter(column)\" (click)=\"filter(column); $event.stopPropagation();\">\r\n <mat-icon color=\"{{ isFiltered(column) ? 'primary' : 'default' }}\">filter_list</mat-icon>\r\n </button>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\"><mdt-table-cell [row]=\"row\" [column]=\"column\"></mdt-table-cell></td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: [stickyHeader]\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n</table>\r\n<mat-paginator [hidden]=\"!isUsingInternalPaginator()\" [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\">\r\n</mat-paginator>","styles":["table{width:100%}th .mat-icon.mat-default{opacity:.54}th .mat-icon.mat-default:hover{opacity:1}[hidden]{display:none}"]}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"dataSource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"pageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"pageSizeOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"showFilters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"stickyHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"paginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":24,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatSort","line":24,"character":13}]}]}],"internalPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":25,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatPaginator","line":25,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ColumnFilterService"},{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":29,"character":98}]}],"ngOnInit":[{"__symbolic":"method"}],"isUsingInternalPaginator":[{"__symbolic":"method"}],"canFilter":[{"__symbolic":"method"}],"isFiltered":[{"__symbolic":"method"}],"prepareColumnName":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"clearFilters":[{"__symbolic":"method"}],"updateDataSource":[{"__symbolic":"method"}],"getFilters":[{"__symbolic":"method"}],"getFilter":[{"__symbolic":"method"}],"setFilter":[{"__symbolic":"method"}],"getColumnByName":[{"__symbolic":"method"}]}},"CellService":{"__symbolic":"class","members":{"registerCell":[{"__symbolic":"method"}],"getCell":[{"__symbolic":"method"}]}},"CellDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[mdtCellHost]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":6,"character":41}]}]}},"ColumnFilterService":{"__symbolic":"class","members":{"registerFilter":[{"__symbolic":"method"}],"getFilter":[{"__symbolic":"method"}]}},"DynamicTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSortModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":32,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":33,"character":4}],"declarations":[{"__symbolic":"reference","name":"DynamicTableComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"CellDirective"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"exports":[{"__symbolic":"reference","name":"DynamicTableComponent"}],"entryComponents":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"CellService"},{"__symbolic":"reference","name":"ColumnFilterService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CellService"}]}]}},"CellComponent":{"__symbolic":"interface"},"ColumnFilter":{"__symbolic":"class","members":{}},"ColumnConfig":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"mdt-table-cell","template":"<ng-template mdtCellHost></ng-template>"}]}],"members":{"cellHost":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":11,"character":5},"arguments":[{"__symbolic":"reference","name":"CellDirective"}]}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":5}}]}],"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CellService"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":18,"character":51}]}],"ngOnInit":[{"__symbolic":"method"}],"initCell":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"mdt-text-cell","template":"{{ row[column.name] }}"}]}],"members":{"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"mdt-date-cell","template":"{{ row[column.name] | date:dateFormat }}"}]}],"members":{"column":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"DynamicTableComponent":"./lib/dynamic-table.component","CellService":"./lib/table-cell/cell-types/cell.service","CellDirective":"./lib/table-cell/cell.directive","ColumnFilterService":"./lib/table-cell/cell-types/column-filter.service","DynamicTableModule":"./lib/dynamic-table.module","CellComponent":"./lib/table-cell/cell-types/cell.component","ColumnFilter":"./lib/column-filter.model","ColumnConfig":"./lib/column-config.model","ɵa":"./lib/table-cell/table-cell.component","ɵb":"./lib/table-cell/cell-types/text-cell.component","ɵc":"./lib/table-cell/cell-types/date-cell.component"},"importAs":"material-dynamic-table"} |
{ | ||
"name": "material-dynamic-table", | ||
"version": "1.1.2", | ||
"version": "1.2.0", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "author": "Marcin Suty", |
@@ -151,2 +151,12 @@ # material-dynamic-table | ||
##### Methods | ||
| Name | Description | | ||
|--------------|-----------------------------------------------------------------------------------------------------| | ||
| getFilter(columnName: string): any | Returns currently set filter for the column with provided name | | ||
| setFilter(columnName: string, filter: any) | Sets the filter for the column with provided name | | ||
| getFilters() | Returns all set column filters | | ||
| clearFilters() | Removes all applied filters | | ||
#### ColumnConfig definition | ||
@@ -153,0 +163,0 @@ ColumnConfig is used to provide specification for the columns to be displayed |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
319951
8.37%2911
8.26%269
3.86%