|
|
@ -410,9 +410,23 @@ export class UtilsService { |
|
|
return decodeURIComponent(results[2].replace(/\+/g, ' ')); |
|
|
return decodeURIComponent(results[2].replace(/\+/g, ' ')); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public removeQueryParams(keys: Array<string>) { |
|
|
|
|
|
let params = this.window.location.search; |
|
|
|
|
|
for (const key of keys) { |
|
|
|
|
|
params = this.updateUrlQueryString(params, key, null); |
|
|
|
|
|
} |
|
|
|
|
|
const baseUrlPart = [baseUrl(), this.window.location.pathname].join(''); |
|
|
|
|
|
this.window.history.replaceState({}, '', baseUrlPart + params); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public updateQueryParam(name: string, value: string | null) { |
|
|
public updateQueryParam(name: string, value: string | null) { |
|
|
const baseUrlPart = [baseUrl(), this.window.location.pathname].join(''); |
|
|
const baseUrlPart = [baseUrl(), this.window.location.pathname].join(''); |
|
|
const urlQueryString = this.window.location.search; |
|
|
const urlQueryString = this.window.location.search; |
|
|
|
|
|
const params = this.updateUrlQueryString(urlQueryString, name, value); |
|
|
|
|
|
this.window.history.replaceState({}, '', baseUrlPart + params); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private updateUrlQueryString(urlQueryString: string, name: string, value: string | null): string { |
|
|
let newParam = ''; |
|
|
let newParam = ''; |
|
|
let params = ''; |
|
|
let params = ''; |
|
|
if (value !== null) { |
|
|
if (value !== null) { |
|
|
@ -425,13 +439,16 @@ export class UtilsService { |
|
|
newParam = '$1' + newParam; |
|
|
newParam = '$1' + newParam; |
|
|
} |
|
|
} |
|
|
params = urlQueryString.replace(keyRegex, newParam); |
|
|
params = urlQueryString.replace(keyRegex, newParam); |
|
|
|
|
|
if (params.startsWith('&')) { |
|
|
|
|
|
params = '?' + params.substring(1); |
|
|
|
|
|
} |
|
|
} else if (newParam) { |
|
|
} else if (newParam) { |
|
|
params = urlQueryString + '&' + newParam; |
|
|
params = urlQueryString + '&' + newParam; |
|
|
} |
|
|
} |
|
|
} else if (newParam) { |
|
|
} else if (newParam) { |
|
|
params = '?' + newParam; |
|
|
params = '?' + newParam; |
|
|
} |
|
|
} |
|
|
this.window.history.replaceState({}, '', baseUrlPart + params); |
|
|
return params; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public baseUrl(): string { |
|
|
public baseUrl(): string { |
|
|
|