Personalización de la apariencia de los elementos visuales y paneles incrustados de QuickSight - Amazon QuickSight

Personalización de la apariencia de los elementos visuales y paneles incrustados de QuickSight

Puede utilizar el SDK de incrustación de Amazon QuickSight (versión 2.5.0 y superior) para realizar cambios en la creación de temas de sus elementos visuales y paneles de QuickSight incrustados en el tiempo de ejecución. La creación de temas en tiempo de ejecución facilita la integración de su aplicación de software como servicio (SaaS) con sus activos incrustados de Amazon QuickSight. La creación de temas en tiempo de ejecución le permite sincronizar el tema del contenido incrustado con los temas de la aplicación principal en la que están incrustados los activos de QuickSight. También puede utilizar la creación de temas en tiempo de ejecución para agregar opciones de personalización para los lectores. Los cambios de creación de temas se pueden aplicar a los activos incrustados al inicializarlos o durante toda la vida útil del elemento visual o el panel incrustados.

Para obtener más información sobre los temas, consulte Uso de temas en Amazon QuickSight. Para obtener más información sobre el uso del SDK de integración de QuickSight, consulte amazon-quicksight-embedding-sdk en GitHub.

Requisitos previos 

Antes de empezar, asegúrese de que cumple los requisitos previos que se indican a continuación.

  • Está usando la versión 2.5.0 o posterior del SDK de incrustación de QuickSight.

  • Dispone de permisos para acceder al tema con el que quiere trabajar. Para conceder permisos a un tema en QuickSight, realice una llamada a la API UpdateThemePermissions, o bien use el icono Compartir situado junto al tema en el editor de análisis de la consola de QuickSight.

Terminología y conceptos

La siguiente terminología puede resultar útil cuando se trabaja con temas de tiempo de ejecución incrustados.

  • Tema: conjunto de ajustes que puede aplicar a varios análisis y paneles que cambian la forma en que se muestra el contenido.

  • ThemeConfiguration: objeto de configuración que contiene todas las propiedades de visualización de un tema.

  • Anulación del tema: objeto ThemeConfiguration que se aplica al tema activo para anular algunos o todos los aspectos de la visualización del contenido.

  • ARN del tema: nombre de recurso de Amazon (ARN) que identifica un tema de QuickSight. A continuación se muestra un ejemplo de ARN de tema personalizado.

    arn:aws:quicksight:region:account-id:theme/theme-id

    Los temas de inicio proporcionados por QuickSight no tienen una región en su ARN del tema. A continuación, se muestra un ejemplo de ARN de tema de inicio.

    arn:aws:quicksight::aws:theme/CLASSIC

Configuración

Asegúrese de disponer de la información que se indica a continuación para empezar a trabajar con la creación de temas en tiempo de ejecución.

  • Los ARN de los temas que desea usar. Puede elegir un tema existente, o bien puede crear uno nuevo. Para obtener una lista de todos los temas y ARN de temas de su cuenta de QuickSight, realice una llamada a la operación de API ListThemes. Para obtener información sobre los temas preestablecidos de QuickSight, consulte Configuración de un tema predeterminado para los análisis de Amazon QuickSight con las API de QuickSight.

  • Si usa la incrustación de usuarios registrados, asegúrese de que el usuario tenga acceso a los temas que desea usar.

    Si usa la incrustación de usuarios anónimos, pase una lista de los ARN de los temas al parámetro AuthorizedResourceArns de la API GenerateEmbedUrlForAnonymousUser. Los usuarios anónimos tienen acceso a cualquier tema que aparezca en el parámetro AuthorizedResourceArns.

Interfaz del método del SDK

Métodos setter

En la siguiente tabla se describen los diferentes métodos setter que los desarrolladores pueden usar para la creación de temas en tiempo de ejecución.

Método Descripción

setTheme(themeArn: string)

Sustituye el tema activo de un panel o elemento visual por otro tema. Si se aplica, se elimina la anulación del tema.

Se devuelve un error si no tiene acceso al tema o si el tema no existe.

setThemeOverride(themeOverride: ThemeConfiguration)

Establece una ThemeConfiguration dinámica para anular el tema activo actual. Esto reemplaza la anulación del tema previamente establecida. Los valores que no se proporcionen en el nuevo ThemeConfiguration se establecen de forma predeterminada con los valores del tema actualmente activo.

Se devuelve un error si el ThemeConfiguration proporcionado no es válido.

Inicialización del contenido incrustado con un tema

Para inicializar un elemento visual o un panel incrustado con un tema no predeterminado, defina un objeto themeOptions en los parámetros DashboardContentOptions o VisualContentOptions y establezca la propiedad themeArn de themeOptions con el ARN del tema deseado.

En el siguiente ejemplo, se inicializa un panel incrustado con el tema MIDNIGHT.

import { createEmbeddingContext } from 'amazon-quicksight-embedding-sdk'; const embeddingContext = await createEmbeddingContext(); const { embedDashboard, } = embeddingContext; const frameOptions = { url: '<YOUR_EMBED_URL>', container: '#experience-container', }; const contentOptions = { themeOptions: { themeArn: "arn:aws:quicksight::aws:theme/MIDNIGHT" } }; // Embedding a dashboard experience const embeddedDashboardExperience = await embedDashboard(frameOptions, contentOptions);

Inicialización del contenido incrustado con una anulación de tema

Los desarrolladores pueden utilizar anulaciones de tema para definir el tema de un elemento visual o panel incrustado en tiempo de ejecución. Esto permite que el panel o el elemento visual hereden un tema de una aplicación de terceros sin necesidad de preconfigurar ningún tema en QuickSight. Para inicializar un elemento visual o panel incrustado con una anulación de tema, establezca la propiedad themeOverride de themeOptions con los parámetros DashboardContentOptions o VisualContentOptions. En el siguiente ejemplo, se anula la fuente del tema de un panel y se pasa de la fuente predeterminada a Amazon Ember.

import { createEmbeddingContext } from 'amazon-quicksight-embedding-sdk'; const embeddingContext = await createEmbeddingContext(); const { embedDashboard, } = embeddingContext; const frameOptions = { url: '<YOUR_EMBED_URL>', container: '#experience-container', }; const contentOptions = { themeOptions: { "themeOverride":{"Typography":{"FontFamilies":[{"FontFamily":"Comic Neue"}]}} } }; // Embedding a dashboard experience const embeddedDashboardExperience = await embedDashboard(frameOptions, contentOptions);

Inicialización del contenido incrustado con temas precargados

Los desarrolladores pueden configurar un conjunto de temas de panel para que se carguen previamente en el momento de la inicialización. Esto resulta especialmente útil para cambiar rápidamente entre diferentes vistas, como, por ejemplo, entre los modos oscuro y claro. Los elementos visuales o paneles incrustados se pueden inicializar con hasta 5 temas precargados. Para usar temas precargados, establezca la propiedad preloadThemes en DashboardContentOptions o VisualContentOptions con una matriz de hasta 5 themeArns. En el siguiente ejemplo, se precargan los temas de inicio Midnight y Rainier en un panel.

import { createEmbeddingContext } from 'amazon-quicksight-embedding-sdk'; const embeddingContext = await createEmbeddingContext(); const { embedDashboard, } = embeddingContext; const frameOptions = { url: '<YOUR_EMBED_URL>', container: '#experience-container', }; const contentOptions = { themeOptions: { "preloadThemes": ["arn:aws:quicksight::aws:theme/RAINIER", "arn:aws:quicksight::aws:theme/MIDNIGHT"] } }; // Embedding a dashboard experience const embeddedDashboardExperience = await embedDashboard(frameOptions, contentOptions);