in authui-container/src/sign-in-ui.ts [134:194]
private generateFirebaseUiHandlerConfig(
configs): {[key: string]: firebaseui.auth.CIAPHandlerConfig} {
// For prototyping purposes, only one API key should be available in the configuration.
for (const apiKey in configs) {
if (configs.hasOwnProperty(apiKey)) {
const config = deepCopy(configs[apiKey]);
const selectTenantUiTitle = config.selectTenantUiTitle;
const selectTenantUiLogo = config.selectTenantUiLogo;
config.callbacks = {
selectTenantUiShown: () => {
this.mainContainer.classList.remove('blend');
this.titleElement.innerText = selectTenantUiTitle;
if (selectTenantUiLogo) {
this.img.style.display = 'block';
this.img.src = selectTenantUiLogo;
this.separatorElement.style.display = 'block';
} else {
this.img.style.display = 'none';
this.separatorElement.style.display = 'none';
}
},
selectTenantUiHidden: () => {
this.titleElement.innerText = '';
},
signInUiShown: (tenantId) => {
this.mainContainer.classList.remove('blend');
const key = tenantId || '_';
this.titleElement.innerText =
config &&
config.tenants &&
config.tenants[key] &&
config.tenants[key].displayName;
if (config.tenants[key].logoUrl) {
this.img.style.display = 'block';
this.img.src = config.tenants[key].logoUrl;
this.separatorElement.style.display = 'block';
} else {
this.img.style.display = 'none';
this.separatorElement.style.display = 'none';
}
},
};
// Do not trigger immediate redirect in Safari without some user
// interaction.
for (const tenantId in (config.tenants || {})) {
if (config.tenants[tenantId].hasOwnProperty('immediateFederatedRedirect')) {
config.tenants[tenantId].immediateFederatedRedirect =
config.tenants[tenantId].immediateFederatedRedirect && getBrowserName() !== BrowserName.Safari;
}
}
// Remove unsupported FirebaseUI configs.
delete config.selectTenantUiLogo;
delete config.selectTenantUiTitle;
delete config.styleUrl;
return {
[apiKey]: config,
};
}
}
return null;
}