UNPKG

ontimize-web-ngx

Version:
181 lines 25.2 kB
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