- Impresión
Construye tus propios widgets en Tulip usando HTML, CSS y JavaScript
This feature is only available for Professional plans and above.
Los elementos que arrastras y sueltas en tu aplicación se llaman Widgets. Estos pueden ser botones, imágenes, cuadros de entrada, y cualquier otra cosa disponible en la barra de herramientas.
Los widgets personalizados te permiten escribir tu propio código y crear tus propios widgets que puedes arrastrar y soltar en tu aplicación e interactuar con ellos. Esta capacidad permite a los usuarios de Tulip ampliar los límites de lo que es posible en Tulip.
Mira el siguiente vídeo para una rápida inmersión en esta característica:
¡Echa un vistazo a los widgets personalizados en la biblioteca de Tulip!
Conceptos básicos de los widgets personalizados
La pantalla de gestión de widgets personalizados se encuentra en la página de configuración de tu cuenta. Aquí es donde puedes crear y eliminar widgets. El editor de widgets personalizados te permite escribir el código de tu widget, crear accesorios y eventos, y previsualizar tu widget. A continuación se muestra un diagrama que describe lo que son los accesorios y eventos:
Props: Los props son datos que se comparten entre los widgets personalizados y las aplicaciones Tulip. Los props se expondrán en el editor de aplicaciones y permitirán a los editores de aplicaciones seleccionar qué variables, registros de tabla u otra información asociar con el prop.
Eventos: Los eventos son señales que tu Widget puede enviar a tu aplicación. Los eventos permiten a tu aplicación responder con un disparador y pueden llevar información junto con ellos.
Los widgets personalizados son accesibles a través del selector desplegable Custom en el App Editor.
Creación de un widget
Only users with access to account settings (Account Owners) can access the custom widget editing UI.
La pantalla del editor de Widgets se divide en cuatro secciones. El código que escriba en la sección inferior izquierda aparecerá en la sección de vista previa una vez que haga clic en la sección de vista previa. Los valores prop pueden ser cambiados directamente en la sección de vista previa para propósitos de prueba.
Hay funciones especiales para interactuar con Puntales y Eventos.
Obteniendo el Valor de Props
It is not guaranteed that the prop being used by a widget will load before that widget loads, so all props associated with Table record fields, Aggregations, or any other dynamic value should include logic to support cases where they are null at the point the widget is loaded. See this section for details on triggering logic when a prop changes.
//Obtener el Valor de un Objeto getValue('``Mi Objeto``');``//Almacenar el objeto en una variableelet miVariable = getValue('Mi Objeto');
Hacer algo cuando cambia una proposición
//Hacer algo cada vez que cambia el valor de una propgetValue('Mi Prop', (variableinterna) => { doSomething(variableinterna);});
Establecer el Valor de una Proposición
//Establecer el valor de una proposición de texto a '¡hola!'setValue('Mi Proposición de Texto', '¡hola!');
//Configura el valor de un elemento en un objeto setValue('Mi Objeto Prop', { 'Clave dentro del objeto': 'nuevo valor' });```
### **Dispara un Evento**
Dispara**un evento** fireEvent('evento', *payload*);
//dispara un evento sin payloadfireEvent('Mi Evento');
//dispara un evento con carga útilfireEvent('Mi Evento', miVariable);```
El siguiente diagrama ilustra el flujo de información a través de un widget personalizado en una app. Los datos de la variable de entrada se almacenan en la prop. El cambio de valor señala un evento donde un disparador almacena los datos en la variable de salida.
![Custom Widget App Setup Diagram](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widget%20App%20Setup%20Diagram.jpg){height="" width=""}
## Video de ejemplo de construcción de un widget
![Video](https://www.youtube.com/embed/H08-W2M2Ypo?rel=0){height="576" width="1024"}
---
## **Importar/Exportar Apps**
**Exportar**
1. En la vista general de widgets personalizados, seleccione los 3 puntos situados junto al widget que desea exportar.
![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widgets%20Overview_477703991.png){height="" width=""}
1. Seleccione "Exportar".
![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widgets%20Overview_477704053.png){height="" width="800"}
**Importar**
1. En la pantalla general de widgets personalizados, seleccione los 3 puntos de la parte superior.
![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widgets%20Overview_477704175.png){height="" width="800"}
1. Seleccione "Importar".
![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widgets%20Overview_477704228.png){height="" width="350"}
1. Busque el archivo .json del widget personalizado.
## **Activar bibliotecas externas**
Las bibliotecas externas amplían aún más lo que pueden hacer los widgets personalizados. Las bibliotecas externas se encargan de gran parte del trabajo *sucio* de escribir html directamente en JavaScript. Las bibliotecas externas deben habilitarse para cada widget en el que desee utilizarlas.
1. En su widget, haga clic en el menú de 3 puntos de la cinta.
![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widgets%20Overview_477684182.png){height="" width=""}
1. Selecciona "Habilitar Biblioteca Externa".
![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widgets%20Overview_477684247.png){height="" width="250"}
1. Seleccione la extensión que desea habilitar.
![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Custom%20Widgets%20Overview_477684294.png){height="" width="450"}
Aquí está una descripción básica de lo que cada uno de estos hacer, muchos de ellos se destacan en muchas áreas, así que siéntase libre de explorar.
* **jQuery** - permite una selección más ágil de elementos html, junto con la manipulación de elementos.
* **D3 -** El estándar de oro para la visualización de datos, una curva de aprendizaje empinada, pero toneladas de flexibilidad.
* **Google Visualization** - Una gran herramienta para hacer como su nombre indica, visualización.
* **javaascript-Ip-solver** - Ip solver es una librería externa que puede manejar cálculos complejos para resolver ecuaciones.
* **Lodash -** Lodash proporciona un montón de herramientas que facilitan el trabajo con tipos de datos javascript.
* **ChartJS -** La librería de gráficos más simple posible con toneladas de recursos en línea.
* Moment**-** Moment proporciona toneladas de herramientas para trabajar con fechas y horas.