private generateFirebaseUiHandlerConfig()

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;
  }