firebaseui-angular-i18n
Version:
[](https://badge.fury.io/js/firebaseui-angular-i18n)
92 lines • 12.4 kB
JavaScript
import { DOCUMENT } from '@angular/common';
import { Inject, Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class DynamicLoaderService {
constructor(_document) {
this._document = undefined;
this._document = _document;
DynamicLoaderService.ResourcesStore.forEach((res) => {
DynamicLoaderService.LoadedResources[res.name] = {
loaded: false,
type: res.type,
src: res.src
};
});
}
/**
* Loads a series of previously registered Script(s)
* @param resNames The list of resources to load
*/
load(...resNames) {
const promises = resNames.map(name => this.loadResource(name));
return Promise.all(promises);
}
/**
* Loads a script given it's name.
* @param name Name of the script to laod.
*/
loadResource(name) {
return new Promise((resolve, reject) => {
const resourceRef = DynamicLoaderService.LoadedResources[name];
if (!resourceRef) {
return reject({ resource: name, loaded: false, statusText: 'Resource not registered' });
}
if (resourceRef.loaded) {
return resolve({ resource: name, loaded: true, statusText: 'Already Loaded' });
}
const tag = resourceRef.type === "js" ? this._document.createElement("script") : this._document.createElement("link");
tag.onload = (e) => {
resourceRef.loaded = true;
return resolve({ resource: name, loaded: true, statusText: "Loaded", status: e });
};
tag.onerror = (error) => {
return reject({ resource: name, loaded: false, statusText: 'Error', error: error });
};
if (tag instanceof HTMLScriptElement) {
tag.type = "text/javascript";
tag.async = true;
tag.src = resourceRef.src;
}
if (tag instanceof HTMLLinkElement) {
tag.type = "text/css";
tag.href = resourceRef.src;
tag.rel = "stylesheet";
}
this._document.head.appendChild(tag);
});
}
/**
* Registers a series of Resource(s), without loading them
* @param resources A list of Resource(s)
*/
register(...resources) {
resources.forEach(res => {
DynamicLoaderService.ResourcesStore.push(res);
DynamicLoaderService.LoadedResources[res.name] = {
loaded: false,
type: res.type,
src: res.src
};
});
}
/**
* Registers and then loads a list of Resource(s)
* @param resources The list of resources
*/
registerAndLoad(...resources) {
const resNames = resources.map(s => s.name);
this.register(...resources);
return this.load(...resNames);
}
}
DynamicLoaderService.ResourcesStore = [];
DynamicLoaderService.LoadedResources = {};
DynamicLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: DynamicLoaderService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
DynamicLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: DynamicLoaderService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: DynamicLoaderService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
type: Inject,
args: [DOCUMENT]
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2ZpcmViYXNldWktYW5ndWxhci1saWJyYXJ5L3NyYy9saWIvZHluYW1pYy1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBaUJuRCxNQUFNLE9BQU8sb0JBQW9CO0lBTzdCLFlBQThCLFNBQWU7UUFGckMsY0FBUyxHQUF5QixTQUFTLENBQUM7UUFHaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0Isb0JBQW9CLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hELG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQzdDLE1BQU0sRUFBRSxLQUFLO2dCQUNiLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtnQkFDZCxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUc7YUFDZixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEdBQUcsUUFBa0I7UUFDdEIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7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UUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7QUEzRmMsbUNBQWMsR0FBZSxFQUFFLENBQUM7QUFDaEMsb0NBQWUsR0FBbUIsRUFBRSxDQUFDO2lIQUgzQyxvQkFBb0Isa0JBT1QsUUFBUTtxSEFQbkIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQVFNLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogXCJjc3NcIiB8IFwianNcIjtcbiAgICBzcmM6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2FkZWRSZXNvdXJjZSB7XG4gICAgW25hbWU6IHN0cmluZ106IHtcbiAgICAgICAgbG9hZGVkOiBib29sZWFuLFxuICAgICAgICB0eXBlOiBcImNzc1wiIHwgXCJqc1wiLFxuICAgICAgICBzcmM6IHN0cmluZ1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIER5bmFtaWNMb2FkZXJTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlc1N0b3JlOiBSZXNvdXJjZVtdID0gW107XG4gICAgcHJpdmF0ZSBzdGF0aWMgTG9hZGVkUmVzb3VyY2VzOiBMb2FkZWRSZXNvdXJjZSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgX2RvY3VtZW50PzogYW55KSB7XG4gICAgICAgIHRoaXMuX2RvY3VtZW50ID0gX2RvY3VtZW50O1xuXG4gICAgICAgIER5bmFtaWNMb2FkZXJTZXJ2aWNlLlJlc291cmNlc1N0b3JlLmZvckVhY2goKHJlcykgPT4ge1xuICAgICAgICAgICAgRHluYW1pY0xvYWRlclNlcnZpY2UuTG9hZGVkUmVzb3VyY2VzW3Jlcy5uYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6IHJlcy50eXBlLFxuICAgICAgICAgICAgICAgIHNyYzogcmVzLnNyY1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgYSBzZXJpZXMgb2YgcHJldmlvdXNseSByZWdpc3RlcmVkIFNjcmlwdChzKVxuICAgICAqIEBwYXJhbSByZXNOYW1lcyBUaGUgbGlzdCBvZiByZXNvdXJjZXMgdG8gbG9hZFxuICAgICAqL1xuICAgIGxvYWQoLi4ucmVzTmFtZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gcmVzTmFtZXMubWFwKG5hbWUgPT4gdGhpcy5sb2FkUmVzb3VyY2UobmFtZSkpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWRzIGEgc2NyaXB0IGdpdmVuIGl0J3MgbmFtZS5cbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBzY3JpcHQgdG8gbGFvZC5cbiAgICAgKi9cbiAgICBsb2FkUmVzb3VyY2UobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNvdXJjZVJlZiA9IER5bmFtaWNMb2FkZXJTZXJ2aWNlLkxvYWRlZFJlc291cmNlc1tuYW1lXTtcblxuICAgICAgICAgICAgaWYgKCFyZXNvdXJjZVJlZikge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoeyByZXNvdXJjZTogbmFtZSwgbG9hZGVkOiBmYWxzZSwgc3RhdHVzVGV4dDogJ1Jlc291cmNlIG5vdCByZWdpc3RlcmVkJyB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc291cmNlUmVmLmxvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHsgcmVzb3VyY2U6IG5hbWUsIGxvYWRlZDogdHJ1ZSwgc3RhdHVzVGV4dDogJ0FscmVhZHkgTG9hZGVkJyB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdGFnID0gcmVzb3VyY2VSZWYudHlwZSA9PT0gXCJqc1wiID8gdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSA6IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xuXG4gICAgICAgICAgICB0YWcub25sb2FkID0gKGUpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZVJlZi5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHsgcmVzb3VyY2U6IG5hbWUsIGxvYWRlZDogdHJ1ZSwgc3RhdHVzVGV4dDogXCJMb2FkZWRcIiwgc3RhdHVzOiBlIH0pO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGFnLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KHsgcmVzb3VyY2U6IG5hbWUsIGxvYWRlZDogZmFsc2UsIHN0YXR1c1RleHQ6ICdFcnJvcicsIGVycm9yOiBlcnJvciB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRhZyBpbnN0YW5jZW9mIEhUTUxTY3JpcHRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGFnLnR5cGUgPSBcInRleHQvamF2YXNjcmlwdFwiO1xuICAgICAgICAgICAgICAgIHRhZy5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGFnLnNyYyA9IHJlc291cmNlUmVmLnNyYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YWcgaW5zdGFuY2VvZiBIVE1MTGlua0VsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0YWcudHlwZSA9IFwidGV4dC9jc3NcIjtcbiAgICAgICAgICAgICAgICB0YWcuaHJlZiA9IHJlc291cmNlUmVmLnNyYztcbiAgICAgICAgICAgICAgICB0YWcucmVsID0gXCJzdHlsZXNoZWV0XCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgc2VyaWVzIG9mIFJlc291cmNlKHMpLCB3aXRob3V0IGxvYWRpbmcgdGhlbVxuICAgICAqIEBwYXJhbSByZXNvdXJjZXMgQSBsaXN0IG9mIFJlc291cmNlKHMpXG4gICAgICovXG4gICAgcmVnaXN0ZXIoLi4ucmVzb3VyY2VzOiBSZXNvdXJjZVtdKSB7XG4gICAgICAgIHJlc291cmNlcy5mb3JFYWNoKHJlcyA9PiB7XG4gICAgICAgICAgICBEeW5hbWljTG9hZGVyU2VydmljZS5SZXNvdXJjZXNTdG9yZS5wdXNoKHJlcyk7XG4gICAgICAgICAgICBEeW5hbWljTG9hZGVyU2VydmljZS5Mb2FkZWRSZXNvdXJjZXNbcmVzLm5hbWVdID0ge1xuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogcmVzLnR5cGUsXG4gICAgICAgICAgICAgICAgc3JjOiByZXMuc3JjXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYW5kIHRoZW4gbG9hZHMgYSBsaXN0IG9mIFJlc291cmNlKHMpXG4gICAgICogQHBhcmFtIHJlc291cmNlcyBUaGUgbGlzdCBvZiByZXNvdXJjZXNcbiAgICAgKi9cbiAgICByZWdpc3RlckFuZExvYWQoLi4ucmVzb3VyY2VzOiBSZXNvdXJjZVtdKSB7XG4gICAgICAgIGNvbnN0IHJlc05hbWVzID0gcmVzb3VyY2VzLm1hcChzID0+IHMubmFtZSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXIoLi4ucmVzb3VyY2VzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZCguLi5yZXNOYW1lcyk7XG4gICAgfVxufVxuIl19