¿Construyendo una biblioteca Angular que contenga un proveedor para chart.js con complementos?
Estoy intentando crear una biblioteca independiente de Angular para chart.js que incluirá complementos.
Parece que chart.js modifica el ChartConfiguration
tipo cuando se registran los complementos para permitir la configuración del complemento.
Si chart.js no hiciera esto, se producirían errores de linting como se muestra en esta pregunta. .
Entonces, por ejemplo, si el complemento de gradiente está registrado así:
import gradient from 'chartjs-plugin-gradient';
Chart.register(...registerables);
Chart.register(gradient);
¿Hay alguna forma de exportar el tipo de configuración de gráfico modificado ( ChartConfiguration
) desde una biblioteca Angular de modo que los clientes puedan configurar chart.js con soporte para complementos empaquetados con el proveedor?
De esta manera los clientes podrán importar la configuración modificada de esta manera:
import { ChartConfiguration } from 'angular-chartjs-library';
Y cree instancias de configuración/opción de chart.js que sean compatibles con el tipo de espacio de nombres en ChartConfiguration
.
Incluso si el servicio empaquetado registra chartjs-plugin-gradient
, los clientes que quieran usarlo junto con ChartConfiguration
para obtener soporte escrito para el complemento aún necesitan importarlo chartjs-plugin-gradient
, porque agrega el soporte a través de la función de fusión de declaraciones de Typecript .
Entonces, para obtener soporte de escritura para un complemento que se usa con Chart.js, simplemente impórtelo de esta manera y se agregará el soporte:
import gradient from 'chartjs-plugin-gradient';