UNPKG

firebaseui-angular-i18n

Version:

[![npm version](https://badge.fury.io/js/firebaseui-angular-i18n.svg)](https://badge.fury.io/js/firebaseui-angular-i18n)

92 lines 12.4 kB
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