ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
181 lines • 25.2 kB
JavaScript
import { DefaultServiceComponentStateClass } from './o-component-state.class';
import { Util } from '../../util/util';
export class OTableComponentStateClass extends DefaultServiceComponentStateClass {
constructor() {
super(...arguments);
this['grouped-column-types'] = [];
}
get filterBuilderValues() {
return this['filter-builder-values'];
}
set filterBuilderValues(value) {
this['filter-builder-values'] = value;
}
get selectColumnVisible() {
return this['select-column-visible'];
}
set selectColumnVisible(value) {
this['select-column-visible'] = value;
}
get quickFilterValue() {
return this['filter'];
}
set quickFilterValue(value) {
this['filter'] = value;
}
get columnsDisplay() {
return this['oColumns-display'];
}
set columnsDisplay(value) {
this['oColumns-display'] = value;
}
getColumnDisplay(oCol) {
return (this.columnsDisplay || []).find(col => col.attr === oCol.attr);
}
get initialConfiguration() {
return this['initial-configuration'];
}
set initialConfiguration(value) {
this['initial-configuration'] = value;
}
get sortColumns() {
return this['sort-columns'];
}
set sortColumns(value) {
this['sort-columns'] = value;
}
get groupedColumnTypes() {
return this['grouped-column-types'];
}
set groupedColumnTypes(value) {
this['grouped-column-types'] = value;
}
get filterColumns() {
return this['filter-columns'];
}
set filterColumns(value) {
this['filter-columns'] = value;
}
get filterColumnActiveByDefault() {
return this['filter-column-active-by-default'];
}
get groupedColumns() {
return this['grouped-columns'];
}
set groupedColumns(value) {
this['grouped-columns'] = value;
}
get columnValueFilters() {
return this['column-value-filters'] || [];
}
set columnValueFilters(value) {
this['column-value-filters'] = value;
}
get storedFilters() {
return this['user-stored-filters'] || [];
}
set expandableRows(value) {
this['expandable-rows'] = value;
}
get expandableRows() {
return this['expandable-rows'];
}
addStoredFilter(filter) {
if (!Util.isDefined(this['user-stored-filters'])) {
this['user-stored-filters'] = [];
}
this.storedFilters.push(filter);
}
deleteStoredFilter(filterName) {
const index = this.storedFilters.findIndex((item) => item.name === filterName);
if (index >= 0) {
this.storedFilters.splice(index, 1);
}
}
getStoredFilter(filterName) {
let result;
const filter = this.storedFilters.find((item) => item.name === filterName);
if (filter) {
result = filter['stored-filter'];
}
return result;
}
applyFilter(filterName) {
const filter = this.getStoredFilter(filterName);
if (filter) {
this.columnValueFilters = filter['column-value-filters'];
this.quickFilterValue = filter['filter'];
this.filterCaseSensitive = filter['filter-case-sensitive'];
this.filterBuilderValues = filter['filter-builder-values'];
this.oColumns = filter['oColumns'];
}
}
get storedConfigurations() {
return this['user-stored-configurations'] || [];
}
addStoredConfiguration(configuration) {
if (!Util.isDefined(this['user-stored-configurations'])) {
this['user-stored-configurations'] = [];
}
this.storedConfigurations.push(configuration);
}
deleteStoredConfiguration(configurationName) {
const index = this.storedConfigurations.findIndex((item) => item.name === configurationName);
if (index >= 0) {
this.storedConfigurations.splice(index, 1);
}
}
getStoredConfiguration(configurationName) {
return this.storedConfigurations.find((item) => item.name === configurationName);
}
applyConfiguration(configurationName) {
const configuration = this.getStoredConfiguration(configurationName);
if (configuration) {
const properties = configuration['stored-properties'] || [];
const conf = configuration['stored-configuration'];
this.copyPropertiesFromConfiguration(properties, conf);
}
}
reset(pageable) {
const result = {
'user-stored-filters': this.storedFilters,
'user-stored-configurations': this.storedConfigurations
};
if (pageable) {
result['totalQueryRecordsNumber'] = this.totalQueryRecordsNumber;
}
result['currentPage'] = 0;
Object.assign(this, {});
Object.assign(this, result);
}
copyPropertiesFromConfiguration(properties, configuration) {
properties.forEach(property => {
switch (property) {
case 'sort-columns':
this.sortColumns = configuration['sort-columns'];
break;
case 'oColumns-display':
this.columnsDisplay = configuration['oColumns-display'];
this.selectColumnVisible = configuration['select-column-visible'];
break;
case 'quick-filter':
case 'columns-filter':
this.columnValueFilters = configuration['column-value-filters'];
break;
case 'grouped-columns':
this.groupedColumns = configuration['grouped-columns'];
break;
case 'page':
this.currentPage = configuration['currentPage'];
this.totalQueryRecordsNumber = configuration['totalQueryRecordsNumber'];
this.queryRecordOffset = configuration['queryRecordOffset'];
this.queryRows = configuration['query-rows'];
break;
case 'filter-builder':
this.filterBuilderValues = configuration['filter-builder'];
break;
}
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvc3RhdGUvby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXZDLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxpQ0FBaUM7SUFBaEY7O1FBOEJZLDRCQUFzQixHQUEwQixFQUFFLENBQUM7SUE4TS9ELENBQUM7SUE1TUMsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBVyxtQkFBbUIsQ0FBQyxLQUE2QjtRQUMxRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksbUJBQW1CLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEtB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QzdDLE1BQU07Z0JBQ1IsS0FBSyxnQkFBZ0I7b0JBQ25CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztvQkFDM0QsTUFBTTthQUNUO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9Db2x1bW4gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQge1xuICBPRmlsdGVyQ29sdW1uXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9oZWFkZXIvdGFibGUtY29sdW1ucy1maWx0ZXIvY29sdW1ucy9vLXRhYmxlLWNvbHVtbnMtZmlsdGVyLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0NvbHVtbkRpc3BsYXkgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi1kaXNwbGF5LnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblNlYXJjaGFibGUgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi1zZWFyY2hhYmxlLnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblZhbHVlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUnO1xuaW1wb3J0IHsgRGVmYXVsdFNlcnZpY2VDb21wb25lbnRTdGF0ZUNsYXNzIH0gZnJvbSAnLi9vLWNvbXBvbmVudC1zdGF0ZS5jbGFzcyc7XG5pbXBvcnQgeyBPVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlRmlsdGVyc1N0YXR1cywgT1RhYmxlU3RvcmVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1maWx0ZXItc3RhdHVzLnR5cGUnO1xuaW1wb3J0IHsgT0ZpbHRlckJ1aWxkZXJWYWx1ZXMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWZpbHRlci1idWlsZGVyLXZhbHVlcy50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0dyb3VwZWRDb2x1bW5UeXBlcyB9IGZyb20gJy4uLy4uL3R5cGVzL28tZ3JvdXBlZC1jb2x1bW4tdHlwZXMudHlwZSc7XG5pbXBvcnQgeyBPVGFibGVFeHBhbmRhYmxlUm93U3RhdGUgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLWV4cGFuZGFibGUtcm93LXN0YXRlLnR5cGUnO1xuXG5leHBvcnQgY2xhc3MgT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcyBleHRlbmRzIERlZmF1bHRTZXJ2aWNlQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gIC8vIHNvcnRcbiAgcHJvdGVjdGVkICdzb3J0LWNvbHVtbnMnOiBzdHJpbmc7XG4gIC8vIGNvbHVtbnMtZGlzcGxheVxuICBwcm90ZWN0ZWQgJ29Db2x1bW5zLWRpc3BsYXknOiBPQ29sdW1uRGlzcGxheVtdO1xuICBwcm90ZWN0ZWQgJ3NlbGVjdC1jb2x1bW4tdmlzaWJsZSc6IGJvb2xlYW47XG4gIC8vIHF1aWNrLWZpbHRlclxuICBwcm90ZWN0ZWQgJ2ZpbHRlcic6IHN0cmluZztcbiAgcHJvdGVjdGVkICdvQ29sdW1ucyc6IE9Db2x1bW5TZWFyY2hhYmxlW107XG4gIC8vIGNvbHVtbnMtZmlsdGVyXG4gIHByb3RlY3RlZCAnY29sdW1uLXZhbHVlLWZpbHRlcnMnOiBPQ29sdW1uVmFsdWVGaWx0ZXJbXTtcbiAgLy8gcGFnZVxuICAnY3VycmVudFBhZ2UnOiBudW1iZXI7XG4gIC8vIHNlbGVjdGlvblxuICAnc2VsZWN0aW9uJzogYW55W107XG4gIC8vIGluaXRpYWwtY29uZmlndXJhdGlvblxuICBwcm90ZWN0ZWQgJ2luaXRpYWwtY29uZmlndXJhdGlvbic6IE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3M7XG4gIC8vIGZpbHRlci1jb2x1bW4tYWN0aXZlXG4gIHByb3RlY3RlZCAnZmlsdGVyLWNvbHVtbi1hY3RpdmUnOiBib29sZWFuO1xuICAvLyBmaWx0ZXItY29sdW1uc1xuICBwcm90ZWN0ZWQgJ2ZpbHRlci1jb2x1bW5zJzogT0ZpbHRlckNvbHVtbltdO1xuICBwcm90ZWN0ZWQgJ2ZpbHRlci1jb2x1bW4tYWN0aXZlLWJ5LWRlZmF1bHQnOiBib29sZWFuO1xuICAvLyBncm91cGVkLWNvbHVtbnNcbiAgcHJvdGVjdGVkICdncm91cGVkLWNvbHVtbnMnOiBzdHJpbmdbXTtcbiAgLy8gc3RvcmVkIGZpbHRlcnMgYW5kIGNvbmZpZ3VyYXRpb25zXG4gIHByb3RlY3RlZCAndXNlci1zdG9yZWQtZmlsdGVycyc6IE9UYWJsZUZpbHRlcnNTdGF0dXNbXTtcbiAgcHJvdGVjdGVkICd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyc6IE9UYWJsZUNvbmZpZ3VyYXRpb25bXTtcbiAgLy8gc3RvcmVkIGZpbHRlcnMgYnVpbGRlciB2YWx1ZXNcbiAgcHJvdGVjdGVkICdmaWx0ZXItYnVpbGRlci12YWx1ZXMnOiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdO1xuXG4gIHByb3RlY3RlZCAnZ3JvdXBlZC1jb2x1bW4tdHlwZXMnOiBPR3JvdXBlZENvbHVtblR5cGVzW10gPSBbXTtcblxuICBwdWJsaWMgZ2V0IGZpbHRlckJ1aWxkZXJWYWx1ZXMoKTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSB7XG4gICAgcmV0dXJuIHRoaXNbJ2ZpbHRlci1idWlsZGVyLXZhbHVlcyddO1xuICB9XG4gIHB1YmxpYyBzZXQgZmlsdGVyQnVpbGRlclZhbHVlcyh2YWx1ZTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSkge1xuICAgIHRoaXNbJ2ZpbHRlci1idWlsZGVyLXZhbHVlcyddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0Q29sdW1uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpc1snc2VsZWN0LWNvbHVtbi12aXNpYmxlJ107XG4gIH1cblxuICBzZXQgc2VsZWN0Q29sdW1uVmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXNbJ3NlbGVjdC1jb2x1bW4tdmlzaWJsZSddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgcXVpY2tGaWx0ZXJWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzWydmaWx0ZXInXTtcbiAgfVxuXG4gIHNldCBxdWlja0ZpbHRlclZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzWydmaWx0ZXInXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnNEaXNwbGF5KCk6IE9Db2x1bW5EaXNwbGF5W10ge1xuICAgIHJldHVybiB0aGlzWydvQ29sdW1ucy1kaXNwbGF5J107XG4gIH1cblxuICBzZXQgY29sdW1uc0Rpc3BsYXkodmFsdWU6IE9Db2x1bW5EaXNwbGF5W10pIHtcbiAgICB0aGlzWydvQ29sdW1ucy1kaXNwbGF5J10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldENvbHVtbkRpc3BsYXkob0NvbDogT0NvbHVtbik6IE9Db2x1bW5EaXNwbGF5IHtcbiAgICByZXR1cm4gKHRoaXMuY29sdW1uc0Rpc3BsYXkgfHwgW10pLmZpbmQoY29sID0+IGNvbC5hdHRyID09PSBvQ29sLmF0dHIpO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxDb25maWd1cmF0aW9uKCk6IE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3Mge1xuICAgIHJldHVybiB0aGlzWydpbml0aWFsLWNvbmZpZ3VyYXRpb24nXTtcbiAgfVxuXG4gIHNldCBpbml0aWFsQ29uZmlndXJhdGlvbih2YWx1ZTogT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcykge1xuICAgIHRoaXNbJ2luaXRpYWwtY29uZmlndXJhdGlvbiddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc29ydENvbHVtbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpc1snc29ydC1jb2x1bW5zJ107XG4gIH1cblxuICBzZXQgc29ydENvbHVtbnModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXNbJ3NvcnQtY29sdW1ucyddID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGdyb3VwZWRDb2x1bW5UeXBlcygpOiBPR3JvdXBlZENvbHVtblR5cGVzW10ge1xuICAgIHJldHVybiB0aGlzWydncm91cGVkLWNvbHVtbi10eXBlcyddO1xuICB9XG4gIHNldCBncm91cGVkQ29sdW1uVHlwZXModmFsdWU6IE9Hcm91cGVkQ29sdW1uVHlwZXNbXSkge1xuICAgIHRoaXNbJ2dyb3VwZWQtY29sdW1uLXR5cGVzJ10gPSB2YWx1ZTtcbiAgfVxuICBnZXQgZmlsdGVyQ29sdW1ucygpOiBPRmlsdGVyQ29sdW1uW10ge1xuICAgIHJldHVybiB0aGlzWydmaWx0ZXItY29sdW1ucyddO1xuICB9XG5cbiAgc2V0IGZpbHRlckNvbHVtbnModmFsdWU6IE9GaWx0ZXJDb2x1bW5bXSkge1xuICAgIHRoaXNbJ2ZpbHRlci1jb2x1bW5zJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJDb2x1bW5BY3RpdmVCeURlZmF1bHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXNbJ2ZpbHRlci1jb2x1bW4tYWN0aXZlLWJ5LWRlZmF1bHQnXTtcbiAgfVxuXG4gIGdldCBncm91cGVkQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXNbJ2dyb3VwZWQtY29sdW1ucyddO1xuICB9XG5cbiAgc2V0IGdyb3VwZWRDb2x1bW5zKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXNbJ2dyb3VwZWQtY29sdW1ucyddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgY29sdW1uVmFsdWVGaWx0ZXJzKCk6IE9Db2x1bW5WYWx1ZUZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpc1snY29sdW1uLXZhbHVlLWZpbHRlcnMnXSB8fCBbXTtcbiAgfVxuXG4gIHNldCBjb2x1bW5WYWx1ZUZpbHRlcnModmFsdWU6IE9Db2x1bW5WYWx1ZUZpbHRlcltdKSB7XG4gICAgdGhpc1snY29sdW1uLXZhbHVlLWZpbHRlcnMnXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHN0b3JlZEZpbHRlcnMoKTogT1RhYmxlRmlsdGVyc1N0YXR1c1tdIHtcbiAgICByZXR1cm4gdGhpc1sndXNlci1zdG9yZWQtZmlsdGVycyddIHx8IFtdO1xuICB9XG5cbiAgc2V0IGV4cGFuZGFibGVSb3dzKHZhbHVlOiBPVGFibGVFeHBhbmRhYmxlUm93U3RhdGVbXSkge1xuICAgIHRoaXNbJ2V4cGFuZGFibGUtcm93cyddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZXhwYW5kYWJsZVJvd3MoKTogT1RhYmxlRXhwYW5kYWJsZVJvd1N0YXRlW10ge1xuICAgIHJldHVybiB0aGlzWydleHBhbmRhYmxlLXJvd3MnXTtcbiAgfVxuXG4gIGFkZFN0b3JlZEZpbHRlcihmaWx0ZXI6IE9UYWJsZUZpbHRlcnNTdGF0dXMpIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXNbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSkpIHtcbiAgICAgIHRoaXNbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlZEZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICB9XG5cbiAgZGVsZXRlU3RvcmVkRmlsdGVyKGZpbHRlck5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdG9yZWRGaWx0ZXJzLmZpbmRJbmRleCgoaXRlbTogT1RhYmxlRmlsdGVyc1N0YXR1cykgPT4gaXRlbS5uYW1lID09PSBmaWx0ZXJOYW1lKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zdG9yZWRGaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmVkRmlsdGVyKGZpbHRlck5hbWU6IHN0cmluZyk6IE9UYWJsZVN0b3JlZEZpbHRlciB7XG4gICAgbGV0IHJlc3VsdDogT1RhYmxlU3RvcmVkRmlsdGVyO1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc3RvcmVkRmlsdGVycy5maW5kKChpdGVtOiBPVGFibGVGaWx0ZXJzU3RhdHVzKSA9PiBpdGVtLm5hbWUgPT09IGZpbHRlck5hbWUpO1xuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIHJlc3VsdCA9IGZpbHRlclsnc3RvcmVkLWZpbHRlciddO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZmlsdGVyTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5nZXRTdG9yZWRGaWx0ZXIoZmlsdGVyTmFtZSk7XG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgdGhpcy5jb2x1bW5WYWx1ZUZpbHRlcnMgPSBmaWx0ZXJbJ2NvbHVtbi12YWx1ZS1maWx0ZXJzJ107XG4gICAgICB0aGlzLnF1aWNrRmlsdGVyVmFsdWUgPSBmaWx0ZXJbJ2ZpbHRlciddO1xuICAgICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gZmlsdGVyWydmaWx0ZXItY2FzZS1zZW5zaXRpdmUnXTtcbiAgICAgIHRoaXMuZmlsdGVyQnVpbGRlclZhbHVlcyA9IGZpbHRlclsnZmlsdGVyLWJ1aWxkZXItdmFsdWVzJ107XG4gICAgICB0aGlzLm9Db2x1bW5zID0gZmlsdGVyWydvQ29sdW1ucyddO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdG9yZWRDb25maWd1cmF0aW9ucygpOiBPVGFibGVDb25maWd1cmF0aW9uW10ge1xuICAgIHJldHVybiB0aGlzWyd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyddIHx8IFtdO1xuICB9XG5cbiAgYWRkU3RvcmVkQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBPVGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzWyd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyddKSkge1xuICAgICAgdGhpc1sndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnXSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlZENvbmZpZ3VyYXRpb25zLnB1c2goY29uZmlndXJhdGlvbik7XG4gIH1cblxuICBkZWxldGVTdG9yZWRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RvcmVkQ29uZmlndXJhdGlvbnMuZmluZEluZGV4KChpdGVtOiBPVGFibGVDb25maWd1cmF0aW9uKSA9PiBpdGVtLm5hbWUgPT09IGNvbmZpZ3VyYXRpb25OYW1lKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zdG9yZWRDb25maWd1cmF0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0b3JlZENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbk5hbWU6IHN0cmluZyk6IE9UYWJsZUNvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlZENvbmZpZ3VyYXRpb25zLmZpbmQoKGl0ZW06IE9UYWJsZUNvbmZpZ3VyYXRpb24pID0+IGl0ZW0ubmFtZSA9PT0gY29uZmlndXJhdGlvbk5hbWUpO1xuICB9XG5cbiAgYXBwbHlDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRTdG9yZWRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25OYW1lKTtcbiAgICBpZiAoY29uZmlndXJhdGlvbikge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IGNvbmZpZ3VyYXRpb25bJ3N0b3JlZC1wcm9wZXJ0aWVzJ10gfHwgW107XG4gICAgICBjb25zdCBjb25mOiBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzID0gY29uZmlndXJhdGlvblsnc3RvcmVkLWNvbmZpZ3VyYXRpb24nXTtcbiAgICAgIHRoaXMuY29weVByb3BlcnRpZXNGcm9tQ29uZmlndXJhdGlvbihwcm9wZXJ0aWVzLCBjb25mKTtcbiAgICB9XG4gIH1cblxuICByZXNldChwYWdlYWJsZTogYm9vbGVhbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICd1c2VyLXN0b3JlZC1maWx0ZXJzJzogdGhpcy5zdG9yZWRGaWx0ZXJzLFxuICAgICAgJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJzogdGhpcy5zdG9yZWRDb25maWd1cmF0aW9uc1xuICAgIH07XG4gICAgaWYgKHBhZ2VhYmxlKSB7XG4gICAgICByZXN1bHRbJ3RvdGFsUXVlcnlSZWNvcmRzTnVtYmVyJ10gPSB0aGlzLnRvdGFsUXVlcnlSZWNvcmRzTnVtYmVyO1xuICAgIH1cbiAgICByZXN1bHRbJ2N1cnJlbnRQYWdlJ10gPSAwO1xuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7fSk7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCByZXN1bHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvcHlQcm9wZXJ0aWVzRnJvbUNvbmZpZ3VyYXRpb24ocHJvcGVydGllczogc3RyaW5nW10sIGNvbmZpZ3VyYXRpb246IE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3MpIHtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgICBjYXNlICdzb3J0LWNvbHVtbnMnOlxuICAgICAgICAgIHRoaXMuc29ydENvbHVtbnMgPSBjb25maWd1cmF0aW9uWydzb3J0LWNvbHVtbnMnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb0NvbHVtbnMtZGlzcGxheSc6XG4gICAgICAgICAgdGhpcy5jb2x1bW5zRGlzcGxheSA9IGNvbmZpZ3VyYXRpb25bJ29Db2x1bW5zLWRpc3BsYXknXTtcbiAgICAgICAgICB0aGlzLnNlbGVjdENvbHVtblZpc2libGUgPSBjb25maWd1cmF0aW9uWydzZWxlY3QtY29sdW1uLXZpc2libGUnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncXVpY2stZmlsdGVyJzpcbiAgICAgICAgY2FzZSAnY29sdW1ucy1maWx0ZXInOlxuICAgICAgICAgIHRoaXMuY29sdW1uVmFsdWVGaWx0ZXJzID0gY29uZmlndXJhdGlvblsnY29sdW1uLXZhbHVlLWZpbHRlcnMnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZ3JvdXBlZC1jb2x1bW5zJzpcbiAgICAgICAgICB0aGlzLmdyb3VwZWRDb2x1bW5zID0gY29uZmlndXJhdGlvblsnZ3JvdXBlZC1jb2x1bW5zJ107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBjb25maWd1cmF0aW9uWydjdXJyZW50UGFnZSddO1xuICAgICAgICAgIHRoaXMudG90YWxRdWVyeVJlY29yZHNOdW1iZXIgPSBjb25maWd1cmF0aW9uWyd0b3RhbFF1ZXJ5UmVjb3Jkc051bWJlciddO1xuICAgICAgICAgIHRoaXMucXVlcnlSZWNvcmRPZmZzZXQgPSBjb25maWd1cmF0aW9uWydxdWVyeVJlY29yZE9mZnNldCddO1xuICAgICAgICAgIHRoaXMucXVlcnlSb3dzID0gY29uZmlndXJhdGlvblsncXVlcnktcm93cyddO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaWx0ZXItYnVpbGRlcic6XG4gICAgICAgICAgdGhpcy5maWx0ZXJCdWlsZGVyVmFsdWVzID0gY29uZmlndXJhdGlvblsnZmlsdGVyLWJ1aWxkZXInXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19