@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
84 lines • 9.62 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class CredentialsFromQueryParamsService {
constructor() {
this.queryParamsToHandle = ['tenant', 'user'];
}
/**
* Retrieves any subset of credentials provided via queryParams
* @return ICredentials found in queryParams.
*/
getCredentialsFromQueryParams() {
const credentials = {};
try {
const params = new URLSearchParams(window.location.search);
this.queryParamsToHandle.forEach(param => {
const value = this.getParameterFromQueryParams(params, param);
if (value) {
credentials[param] = value;
}
});
}
catch (e) {
// URLSearchParams probably not available in all browsers (https://caniuse.com/urlsearchparams)
}
return credentials;
}
/**
* Removes credentials from the queryParameters if any are present.
* In case some credentials were present, this method will cause a page reload.
* @return boolean if credentials were found.
*/
removeCredentialsFromQueryParams() {
try {
const params = new URLSearchParams(window.location.search);
const hasRemovedAtLeastOneParam = this.queryParamsToHandle
.map(param => this.removeParameterFromQueryParameters(params, param))
.reduceRight((prev, curr) => prev || curr, false);
if (hasRemovedAtLeastOneParam) {
window.location.search = params.toString();
return true;
}
}
catch (e) {
// URLSearchParams probably not available in all browsers (https://caniuse.com/urlsearchparams)
}
return false;
}
/**
* Looks for the specified key in the provided URLSearchParams.
* If the specified key was found, it will be removed.
* @return boolean if key was found.
*/
removeParameterFromQueryParameters(params, key) {
const keyAsString = `${key}`;
if (!params.has(keyAsString)) {
return false;
}
params.delete(keyAsString);
return true;
}
/**
* Looks for the specified key in the provided URLSearchParams.
* If the specified key was found, it's value will be returned.
* Otherwise null will be returned.
* @return string/null.
*/
getParameterFromQueryParams(params, key) {
const keyAsString = `${key}`;
if (!params.has(keyAsString)) {
return null;
}
const value = params.get(keyAsString);
if (!value) {
return null;
}
return value;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CredentialsFromQueryParamsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CredentialsFromQueryParamsService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CredentialsFromQueryParamsService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMtZnJvbS1xdWVyeS1wYXJhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvbG9naW4vY3JlZGVudGlhbHMtZnJvbS1xdWVyeS1wYXJhbXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8saUNBQWlDO0lBRDlDO1FBRW1CLHdCQUFtQixHQUE4QixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztLQWdGdEY7SUE5RUM7OztPQUdHO0lBQ0gsNkJBQTZCO1FBQzNCLE1BQU0sV0FBVyxHQUFpQixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsK0ZBQStGO1FBQ2pHLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdDQUFnQztRQUM5QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQjtpQkFDdkQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDcEUsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLHlCQUF5QixFQUFFLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCwrRkFBK0Y7UUFDakcsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxrQ0FBa0MsQ0FDeEMsTUFBdUIsRUFDdkIsR0FBdUI7UUFFdkIsTUFBTSxXQUFXLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSywyQkFBMkIsQ0FDakMsTUFBdUIsRUFDdkIsR0FBdUI7UUFFdkIsTUFBTSxXQUFXLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQWhGVSxpQ0FBaUM7bUhBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFEN0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDcmVkZW50aWFscyB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENyZWRlbnRpYWxzRnJvbVF1ZXJ5UGFyYW1zU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcXVlcnlQYXJhbXNUb0hhbmRsZTogQXJyYXk8a2V5b2YgSUNyZWRlbnRpYWxzPiA9IFsndGVuYW50JywgJ3VzZXInXTtcblxuICAvKipcbiAgICogUmV0cmlldmVzIGFueSBzdWJzZXQgb2YgY3JlZGVudGlhbHMgcHJvdmlkZWQgdmlhIHF1ZXJ5UGFyYW1zXG4gICAqIEByZXR1cm4gSUNyZWRlbnRpYWxzIGZvdW5kIGluIHF1ZXJ5UGFyYW1zLlxuICAgKi9cbiAgZ2V0Q3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXMoKTogSUNyZWRlbnRpYWxzIHtcbiAgICBjb25zdCBjcmVkZW50aWFsczogSUNyZWRlbnRpYWxzID0ge307XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICB0aGlzLnF1ZXJ5UGFyYW1zVG9IYW5kbGUuZm9yRWFjaChwYXJhbSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQYXJhbWV0ZXJGcm9tUXVlcnlQYXJhbXMocGFyYW1zLCBwYXJhbSk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGNyZWRlbnRpYWxzW3BhcmFtXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBVUkxTZWFyY2hQYXJhbXMgcHJvYmFibHkgbm90IGF2YWlsYWJsZSBpbiBhbGwgYnJvd3NlcnMgKGh0dHBzOi8vY2FuaXVzZS5jb20vdXJsc2VhcmNocGFyYW1zKVxuICAgIH1cbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBjcmVkZW50aWFscyBmcm9tIHRoZSBxdWVyeVBhcmFtZXRlcnMgaWYgYW55IGFyZSBwcmVzZW50LlxuICAgKiBJbiBjYXNlIHNvbWUgY3JlZGVudGlhbHMgd2VyZSBwcmVzZW50LCB0aGlzIG1ldGhvZCB3aWxsIGNhdXNlIGEgcGFnZSByZWxvYWQuXG4gICAqIEByZXR1cm4gYm9vbGVhbiBpZiBjcmVkZW50aWFscyB3ZXJlIGZvdW5kLlxuICAgKi9cbiAgcmVtb3ZlQ3JlZGVudGlhbHNGcm9tUXVlcnlQYXJhbXMoKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICBjb25zdCBoYXNSZW1vdmVkQXRMZWFzdE9uZVBhcmFtID0gdGhpcy5xdWVyeVBhcmFtc1RvSGFuZGxlXG4gICAgICAgIC5tYXAocGFyYW0gPT4gdGhpcy5yZW1vdmVQYXJhbWV0ZXJGcm9tUXVlcnlQYXJhbWV0ZXJzKHBhcmFtcywgcGFyYW0pKVxuICAgICAgICAucmVkdWNlUmlnaHQoKHByZXYsIGN1cnIpID0+IHByZXYgfHwgY3VyciwgZmFsc2UpO1xuICAgICAgaWYgKGhhc1JlbW92ZWRBdExlYXN0T25lUGFyYW0pIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBVUkxTZWFyY2hQYXJhbXMgcHJvYmFibHkgbm90IGF2YWlsYWJsZSBpbiBhbGwgYnJvd3NlcnMgKGh0dHBzOi8vY2FuaXVzZS5jb20vdXJsc2VhcmNocGFyYW1zKVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgZm9yIHRoZSBzcGVjaWZpZWQga2V5IGluIHRoZSBwcm92aWRlZCBVUkxTZWFyY2hQYXJhbXMuXG4gICAqIElmIHRoZSBzcGVjaWZpZWQga2V5IHdhcyBmb3VuZCwgaXQgd2lsbCBiZSByZW1vdmVkLlxuICAgKiBAcmV0dXJuIGJvb2xlYW4gaWYga2V5IHdhcyBmb3VuZC5cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlUGFyYW1ldGVyRnJvbVF1ZXJ5UGFyYW1ldGVycyhcbiAgICBwYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyxcbiAgICBrZXk6IGtleW9mIElDcmVkZW50aWFsc1xuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBrZXlBc1N0cmluZyA9IGAke2tleX1gO1xuICAgIGlmICghcGFyYW1zLmhhcyhrZXlBc1N0cmluZykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcGFyYW1zLmRlbGV0ZShrZXlBc1N0cmluZyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgZm9yIHRoZSBzcGVjaWZpZWQga2V5IGluIHRoZSBwcm92aWRlZCBVUkxTZWFyY2hQYXJhbXMuXG4gICAqIElmIHRoZSBzcGVjaWZpZWQga2V5IHdhcyBmb3VuZCwgaXQncyB2YWx1ZSB3aWxsIGJlIHJldHVybmVkLlxuICAgKiBPdGhlcndpc2UgbnVsbCB3aWxsIGJlIHJldHVybmVkLlxuICAgKiBAcmV0dXJuIHN0cmluZy9udWxsLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJGcm9tUXVlcnlQYXJhbXMoXG4gICAgcGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMsXG4gICAga2V5OiBrZXlvZiBJQ3JlZGVudGlhbHNcbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3Qga2V5QXNTdHJpbmcgPSBgJHtrZXl9YDtcbiAgICBpZiAoIXBhcmFtcy5oYXMoa2V5QXNTdHJpbmcpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbXMuZ2V0KGtleUFzU3RyaW5nKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=