UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

84 lines 9.62 kB
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=