# Comportamientos
Los comportamientos son un grupo de funcionalidades que pueden agregarse a los controles para realizar acciones. Estos serán definidos en cada componente del tipo 'campo' en los cuales sean compatibles.
# Ejemplos
# Uso
Los comportamientos se definirán con una propiedad comportamientos de tipo Array, que contendrá un listado de objetos, donde cada uno define un componente de comportamiento.
Los comportamientos son compatibles con la mayoría de componentes de tipo 'campo' (es decir que son inputs de datos). Se detalla la compatibilidad en la siguiente tabla:
| Componente | compatible |
|---|---|
| IrCheckbox | Si |
| IrGpsMarker | Si |
| IrLink | Si |
| IrNumericField | Si |
| IrPassword | Si |
| IrSelect | Si |
| IrTextarea | Si |
| IrTextField | Si |
| IrTitulo | Si |
| IrWysiwyg | Si |
| IrDatePicker | Si |
# Propiedades
Cada comportamiento que se defina dentro de la propiedad comportamientos deberá contener determinadas propiedades que definirán su funcionamiento. Estas son:
| Propiedad | Tipo | Default | Types compatibles | Descripción |
|---|---|---|---|---|
| component | String | Todos | Nombre de un componente de ICL o Vuetify que se renderizará y será el control útil para el usuario para realizar la acción del comportamiento. Por ejemplo | |
| position | String | Todos | Posición donde se renderizará el comportamiento con respecto al campo. Cada tipo de campo contiene posiciones compatibles distintas y especificas. Se listarán en otra sección. | |
| visible | Boolean |
| Todos | determina si se renderizará o no el comportamiento. |
| type | String | Todos | Nombre de uno de los tipos de acción que son permitidos. Detallados en otra sección. | |
| icon | String | Todos | Define un icono que se agregará al contenido del comportamiento. En caso de que el comportamiento tenga un component que permita texto, el icono se agregara antes de el texto definido en | |
| component_text | String | Todos | En caso de que el comportamiento tenga un | |
| tooltip_text | String | Todos | Texto que se mostrará en tooltip al hacer mouse hover en el componente del comportamiento | |
| attrs | Object | Todos | Objeto de atributos que se pasarán al componente del comportamiento para modificar su funcionamiento o aspecto. Por ejemplo | |
| id_resolver | String |
| id_resolver que se renderizará en la pantalla navegada o abierta en modal. El contenido del campo se reemplazará en lugar de la cadena | |
| dialogAttrs | Object |
| Atributos que se aplicaran al v-dialog. Por ejemplo | fcn_click | String |
| Función de DB que se ejecutará al hacer click en el comportamiento. Se enviarán como argumentos de la función los definidos en la prop |
| args_fcn_click | Object |
| Objeto con los argumentos que se enviarán a la función definida en | |
| confirmation | String |
| Define el mensaje que se mostrará en una ventana de confirmación antes de ejecutar efectivamente la acción del comportamiento. La ventana de confirmación se abrirá al clickear el comportamiento solo en el caso de que | |
| titulo | String |
| Define el título que se mostrará en la ventana modal que se abrirá al hacer click en el comportamiento | |
| tooltip_attrs | Object | Todos | Define los atributos que se pasarán al v-tooltip aplicado al comportamiento, pueden verse las propiedades aplicables en Vuetify Por ejemplo se podrá determinar el ancho máximo enviando el siguiente valor de propiedad: | |
| modify_value | Boolean |
| Al estar seteada en | |
| api | Object |
| Determina las configuraciones de las consultas que se harán cuando se cambie el valor. la estructura deberá ser la siguiente:
|
# Positions
A continuación se muestran las posiciones válidas para cada componente, que son valores válidos para la propiedad position de los componentes.
| Position | Descripción | Componentes compatibles |
|---|---|---|
| Dentro de los "bordes" del componente en caso de que los tenga, después del campo. En caso de que no tenga bordes, inmediatamente después del componente |
|
| Fuera de los "bordes" del componente en caso de que los tenga, antes del campo. En caso de que no tenga bordes, inmediatamente antes del componente |
|
| Fuera de los "bordes" del componente en caso de que los tenga, después del campo. |
|
| En lugar del label del campo. Lo reemplazará. |
|
| Dentro de los "bordes" del componente en caso de que los tenga, antes del campo. |
|
| En lugar del hint del campo, debe estar definido el hint y se mostrará en los mismo casos que se mostraría el hint (focus, |
|
| `item` | En desplegable de items, antes de cada item |
|
| En desplegable de items, antes del primer item |
|
| En desplegable de items, cuando no haya items |
|
| En el campo, en lugar del valor, al haber seleccionado un item |
|
| En el lugar donde se muestra el counter, en caso de estar activado |
|
| En el contenedor del componente, alineado al final. |
|
# Types
Hay diferentes tipos de comportamientos, cada uno cumple una función distinta. Pueden verse en el siguiente listado.
| Type | Descripción |
| Ejecutará una funcion en DB |
| Navegará a una nueva página en el navegador |
| Renderizará un modal con un id_resolver distinto al actual. |
| Generará un tooltip con texto que se mostrará al hacer mouse hover sobre el componente del comportamiento. |
| Hará consultas a APIs especificadas y luego se refrescará el formulario que lo contiene. |
# Respuesta fcn_executer
La respuesta esperada para la función ejecutada en un fcn_executer puede ser de tipo Array, String, Number o Boolean en caso de usarse la propiedad modify_value. En caso contrario la respuesta debe tener la estructura similar a la detallada en IrForm