xonecode 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +167 -0
- package/dist/agent/authEnDisco.js +56 -0
- package/dist/agent/authEnDisco.js.map +1 -0
- package/dist/agent/configEnDisco.js +109 -0
- package/dist/agent/configEnDisco.js.map +1 -0
- package/dist/agent/crearProyecto.js +34 -0
- package/dist/agent/crearProyecto.js.map +1 -0
- package/dist/agent/entorno.js +124 -0
- package/dist/agent/entorno.js.map +1 -0
- package/dist/agent/guionizado.js +53 -0
- package/dist/agent/guionizado.js.map +1 -0
- package/dist/agent/instantanea.js +129 -0
- package/dist/agent/instantanea.js.map +1 -0
- package/dist/agent/interrupts.js +83 -0
- package/dist/agent/interrupts.js.map +1 -0
- package/dist/agent/mensajes.js +24 -0
- package/dist/agent/mensajes.js.map +1 -0
- package/dist/agent/modelos.js +42 -0
- package/dist/agent/modelos.js.map +1 -0
- package/dist/agent/normalizar.js +20 -0
- package/dist/agent/normalizar.js.map +1 -0
- package/dist/agent/perfiles.js +103 -0
- package/dist/agent/perfiles.js.map +1 -0
- package/dist/agent/proyecto.js +107 -0
- package/dist/agent/proyecto.js.map +1 -0
- package/dist/agent/puente.js +142 -0
- package/dist/agent/puente.js.map +1 -0
- package/dist/agent/resumenDeTool.js +48 -0
- package/dist/agent/resumenDeTool.js.map +1 -0
- package/dist/agent/skills.js +65 -0
- package/dist/agent/skills.js.map +1 -0
- package/dist/agent/textoDeTool.js +113 -0
- package/dist/agent/textoDeTool.js.map +1 -0
- package/dist/agent/turnoReal.js +173 -0
- package/dist/agent/turnoReal.js.map +1 -0
- package/dist/agent/verificador.js +65 -0
- package/dist/agent/verificador.js.map +1 -0
- package/dist/agent/xoneAgent.js +106 -0
- package/dist/agent/xoneAgent.js.map +1 -0
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/aprobar.js +82 -0
- package/dist/cli/aprobar.js.map +1 -0
- package/dist/cli/config.js +133 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/consola.js +346 -0
- package/dist/cli/consola.js.map +1 -0
- package/dist/cli/describe.js +53 -0
- package/dist/cli/describe.js.map +1 -0
- package/dist/cli/doctor.js +45 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/main.js +520 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/markdown.js +90 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/run.js +164 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/spinner.js +89 -0
- package/dist/cli/spinner.js.map +1 -0
- package/dist/cli/stdio.js +193 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/tema.js +40 -0
- package/dist/cli/tema.js.map +1 -0
- package/dist/cli/verify.js +62 -0
- package/dist/cli/verify.js.map +1 -0
- package/dist/core/bitacora.js +30 -0
- package/dist/core/bitacora.js.map +1 -0
- package/dist/core/config.js +236 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/contextos.js +56 -0
- package/dist/core/contextos.js.map +1 -0
- package/dist/core/deps.js +51 -0
- package/dist/core/deps.js.map +1 -0
- package/dist/core/diff.js +79 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/esqueleto.js +366 -0
- package/dist/core/esqueleto.js.map +1 -0
- package/dist/core/events.js +2 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/modelos.js +85 -0
- package/dist/core/modelos.js.map +1 -0
- package/dist/core/notify.js +106 -0
- package/dist/core/notify.js.map +1 -0
- package/dist/core/ports.js +114 -0
- package/dist/core/ports.js.map +1 -0
- package/dist/core/turno.js +127 -0
- package/dist/core/turno.js.map +1 -0
- package/dist/vendor/hitl.js +103 -0
- package/dist/vendor/hitl.js.map +1 -0
- package/dist/vendor/skillLoaders/catalog.js +74 -0
- package/dist/vendor/skillLoaders/catalog.js.map +1 -0
- package/dist/vendor/tokenTracking.js +58 -0
- package/dist/vendor/tokenTracking.js.map +1 -0
- package/package.json +41 -0
- package/skills/xone-debugging/SKILL.md +52 -0
- package/skills/xone-debugging/references/faq.md +561 -0
- package/skills/xone-debugging/references/troubleshooting-y-glosario.md +429 -0
- package/skills/xone-development/SKILL.md +105 -0
- package/skills/xone-development/references/anti-patrones.md +94 -0
- package/skills/xone-development/references/css/atributos-por-categoria.md +509 -0
- package/skills/xone-development/references/css/buenas-practicas-y-parser.md +419 -0
- package/skills/xone-development/references/css/dinamicos-cascada-y-componentes.md +550 -0
- package/skills/xone-development/references/css/patrones-material-y-temas.md +1140 -0
- package/skills/xone-development/references/css/propiedades-y-herencia.md +885 -0
- package/skills/xone-development/references/css/selectores-unidades-colores.md +840 -0
- package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +457 -0
- package/skills/xone-development/references/datos/appdata.md +611 -0
- package/skills/xone-development/references/datos/http-sqlmanager-y-crypto.md +720 -0
- package/skills/xone-development/references/datos/http.md +366 -0
- package/skills/xone-development/references/datos/oauth2-y-replica.md +156 -0
- package/skills/xone-development/references/device/biometria-imagedrawing-y-otros.md +544 -0
- package/skills/xone-development/references/device/objetos-de-dispositivo.md +583 -0
- package/skills/xone-development/references/device/systemsettings-referencia-ampliada.md +396 -0
- package/skills/xone-development/references/device/systemsettings-y-permisos.md +342 -0
- package/skills/xone-development/references/fundamentos/conceptos-clave.md +695 -0
- package/skills/xone-development/references/fundamentos/configuracion-app-xml-ini-mappings.md +668 -0
- package/skills/xone-development/references/fundamentos/errores-comunes.md +312 -0
- package/skills/xone-development/references/fundamentos/navegacion-convenciones-y-primer-proyecto.md +576 -0
- package/skills/xone-development/references/fundamentos/plataforma-y-anatomia-de-proyecto.md +387 -0
- package/skills/xone-development/references/indice-completo.md +77 -0
- package/skills/xone-development/references/javascript/coleccion-error-y-usuario.md +260 -0
- package/skills/xone-development/references/javascript/debugging-y-best-practices.md +245 -0
- package/skills/xone-development/references/javascript/metodos-de-los-controles.md +556 -0
- package/skills/xone-development/references/javascript/metodos-nativos-de-la-vista.md +114 -0
- package/skills/xone-development/references/javascript/motor-js-y-contexto-de-ejecucion.md +319 -0
- package/skills/xone-development/references/javascript/objeto-ai-llm-en-dispositivo.md +358 -0
- package/skills/xone-development/references/javascript/objetos-creables-a-m.md +527 -0
- package/skills/xone-development/references/javascript/objetos-creables-n-z.md +385 -0
- package/skills/xone-development/references/javascript/patrones-criticos-seguridad-y-rendimiento.md +595 -0
- package/skills/xone-development/references/javascript/patrones-de-navegacion-datos-y-codigo.md +751 -0
- package/skills/xone-development/references/javascript/patrones-de-ui-voz-integracion-y-seguridad.md +701 -0
- package/skills/xone-development/references/javascript/plantillas-y-funciones-utilitarias.md +647 -0
- package/skills/xone-development/references/javascript/self-y-dataobject.md +449 -0
- package/skills/xone-development/references/javascript/singletons-globales.md +361 -0
- package/skills/xone-development/references/javascript/ui-catalogo-de-metodos.md +464 -0
- package/skills/xone-development/references/javascript/ui-gps-camara-y-multimedia.md +506 -0
- package/skills/xone-development/references/javascript/ui-navegacion-mensajes-y-vista.md +422 -0
- package/skills/xone-development/references/resumen-js-datos-dispositivo.md +80 -0
- package/skills/xone-development/references/resumen-xml-y-css.md +74 -0
- package/skills/xone-development/references/tipos-de-prop.md +28 -0
- package/skills/xone-development/references/xml-ui/asfilter-visibilidad-eventos-y-macros.md +576 -0
- package/skills/xone-development/references/xml-ui/atributos-coll-group-frame.md +235 -0
- package/skills/xone-development/references/xml-ui/atributos-method-macro-script-event-app.md +244 -0
- package/skills/xone-development/references/xml-ui/atributos-prop.md +439 -0
- package/skills/xone-development/references/xml-ui/contents-y-macros.md +392 -0
- package/skills/xone-development/references/xml-ui/errores-comunes-xml.md +245 -0
- package/skills/xone-development/references/xml-ui/estructura-y-nodo-coll.md +326 -0
- package/skills/xone-development/references/xml-ui/eventos-ciclo-de-vida-e-interaccion.md +704 -0
- package/skills/xone-development/references/xml-ui/eventos-sistema-login-y-personalizados.md +944 -0
- package/skills/xone-development/references/xml-ui/layouts-herencia-y-buenas-practicas.md +618 -0
- package/skills/xone-development/references/xml-ui/mapas.md +685 -0
- package/skills/xone-development/references/xml-ui/mappings-y-colecciones-separadas.md +148 -0
- package/skills/xone-development/references/xml-ui/nodos-group-y-frame.md +666 -0
- package/skills/xone-development/references/xml-ui/patrones-de-pantalla.md +643 -0
- package/skills/xone-development/references/xml-ui/prop-atributos-y-condiciones.md +298 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +493 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-combos-y-controles.md +664 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-listas-y-mapas.md +412 -0
- package/skills/xone-plan-builder/SKILL.md +183 -0
- package/skills/xone-plan-builder/agents/openai.yaml +5 -0
- package/skills/xone-plan-builder/references/TASKS-FORMAT.md +132 -0
- package/skills/xone-project-generator/SKILL.md +111 -0
- package/skills/xone-project-generator/references/canonical-sizes.md +292 -0
- package/skills/xone-project-generator/references/colecciones-base.md +16 -0
- package/skills/xone-project-generator/references/convenciones-de-nombres.md +16 -0
- package/skills/xone-project-generator/references/ejemplos-por-sector-y-prohibiciones.md +140 -0
- package/skills/xone-project-generator/references/fase-3-estilos-css.md +597 -0
- package/skills/xone-project-generator/references/fase-6-colecciones.md +762 -0
- package/skills/xone-project-generator/references/fase-7-asfilter-e-integraciones.md +142 -0
- package/skills/xone-project-generator/references/fase-7-entidades-y-estructura-de-pantalla.md +494 -0
- package/skills/xone-project-generator/references/fase-7-plantilla-consola.md +477 -0
- package/skills/xone-project-generator/references/fase-7-plantillas-de-pantalla.md +302 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-graficos-y-listas.md +681 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-mapa-y-calendario.md +479 -0
- package/skills/xone-project-generator/references/fases-0-2-analisis-y-modelo-de-datos.md +350 -0
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +194 -0
- package/skills/xone-project-generator/references/fases-4-5-estructura-y-configuracion.md +587 -0
- package/skills/xone-project-generator/references/fases-8-9-eventos-y-javascript.md +861 -0
- package/skills/xone-project-generator/references/flujo-de-generacion.md +67 -0
- package/skills/xone-project-generator/references/plantillas-estandar.md +98 -0
- package/skills/xone-project-generator/references/tamanos-canonicos.md +49 -0
- package/skills/xone-review/SKILL.md +189 -0
- package/skills/xone-spec-builder/SKILL.md +235 -0
- package/skills/xone-spec-builder/agents/openai.yaml +5 -0
- package/skills/xone-spec-builder/references/ADR-FORMAT.md +55 -0
- package/skills/xone-spec-builder/references/CONTEXT-FORMAT.md +42 -0
- package/skills/xone-spec-builder/references/PLAN-FORMAT.md +120 -0
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
# XOne XML — Referencia de atributos: prop
|
|
2
|
+
|
|
3
|
+
> Fuente: `xone/v2/xone-help-docs/topics/07-xml-attributes-reference.md` §4. Referencia de la skill; el índice está en [../../SKILL.md](../../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Contenido: §4 todos los atributos de prop: colores por estado, bordes individuales, entrada, multimedia, ML/cámara, classid, sliders, stepper, OTP, kanban, coverflow, chips y markdown
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 4. Nodo `<prop>` — Propiedad/Campo
|
|
10
|
+
|
|
11
|
+
### 4.1 Identidad y obligatorios
|
|
12
|
+
|
|
13
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `name` | string | **Si** | — | Nombre del campo (= columna SQL). Usar `MAP_` si no es columna BD. |
|
|
16
|
+
| `type` | enum | **Si** | — | Tipo de dato. Ver [sección 10](#10-tipos-de-propiedad-atributo-type). |
|
|
17
|
+
| `group` | int | **Si** | — | ID del grupo donde se renderiza. |
|
|
18
|
+
| `title` | string | No | `name` | Etiqueta visible. |
|
|
19
|
+
| `value` | string/formula | No | `""` | Valor inicial. |
|
|
20
|
+
| `size` | int | No | `0` | Tamaño máximo del campo en BD. |
|
|
21
|
+
| `fldname` | string | No | `""` | Nombre de la columna en BD si difiere de `name`. |
|
|
22
|
+
|
|
23
|
+
### 4.2 Layout
|
|
24
|
+
|
|
25
|
+
| Atributo | Tipo | Default | Descripción |
|
|
26
|
+
|---|---|---|---|
|
|
27
|
+
| `frame` | string | `""` | Frame padre donde se renderiza. |
|
|
28
|
+
| `subgroup` | int | `-1` | Subgrupo dentro del grupo. |
|
|
29
|
+
| `newline` | bool | `true` | Salto de linea antes del control. |
|
|
30
|
+
| `width` | medida | auto | Ancho del control. |
|
|
31
|
+
| `height` | medida | auto | Alto del control. |
|
|
32
|
+
| `min-width` / `max-width` / `min-height` / `max-height` | medida | — | Restricciones de tamaño. |
|
|
33
|
+
| `lines` | int | `1` | Número de lineas de texto visibles. |
|
|
34
|
+
| `fixed-lines` | int | `0` | Lineas de texto fijas. |
|
|
35
|
+
| `floating` | bool | `false` | Posicionamiento absoluto. |
|
|
36
|
+
| `top` / `left` / `right` / `bottom` | medida | — | Posición absoluta (requiere `floating="true"`). |
|
|
37
|
+
| `scroll` | bool | `false` | Scroll interno del control. |
|
|
38
|
+
| `align` | enum | `left` | `left`, `center`, `right`. Alineacion horizontal del control. |
|
|
39
|
+
| `vertical-align` | enum | `middle` | `top`, `middle`, `bottom`. Alineacion vertical. |
|
|
40
|
+
| `text-align` | enum | `left` | Alineacion del texto dentro del campo. |
|
|
41
|
+
| `label-align` | enum | `left` | Alineacion del label. |
|
|
42
|
+
| `labelwidth` | int | `10` | Ancho del label en caracteres. |
|
|
43
|
+
| `fieldsize` | int | `14` | Tamaño del área de campo. |
|
|
44
|
+
| `width-to-text` | bool | `false` | Ajusta el ancho del control al texto que contiene. |
|
|
45
|
+
| `tmargin` / `bmargin` / `lmargin` / `rmargin` | medida | `0` | Margenes externos. |
|
|
46
|
+
| `tpadding` / `bpadding` / `lpadding` / `rpadding` | medida | `0` | Padding interno. |
|
|
47
|
+
| `zorder` | int | `0` | Orden Z. |
|
|
48
|
+
| `elevation` | medida | `0` | Sombra/elevacion Material Design. |
|
|
49
|
+
|
|
50
|
+
### 4.3 Visibilidad y estado
|
|
51
|
+
|
|
52
|
+
| Atributo | Tipo | Default | Descripción |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| `visible` | int (mask) | `-1` | Mascara binaria: 0=oculto, 1=formulario, 2=lista, 4=contents, 7=todos. |
|
|
55
|
+
| `disableedit` | formula | `""` | Si la fórmula es verdadera, bloquea la **UI** de edición del control (versión dinámica de `locked`); se OR-ea con `locked`. **No** afecta a la persistencia. |
|
|
56
|
+
| `disablevisible` | formula | `""` | Si verdadero, el campo se oculta. |
|
|
57
|
+
| `readonly` | bool | `false` | **Persistencia**: excluye el campo del UPDATE en BD (el framework lo interpreta como "no actualizable"). **No** bloquea la UI en `T`/`N`/`NC`/spinners/etc. Caso especial: en `<prop type="VD">` actúa como flag de UI (`true` = reproducir, `false` = capturar). Ver nota abajo. |
|
|
58
|
+
| `locked` | bool | `false` | **UI**: bloquea visualmente la edición del control (lo respetan inputs de texto, números, spinners, checkboxes, OTP, sliders, kanban, charts, etc.). Equivalente estático de `disableedit`. **No** afecta a la persistencia: si el valor cambia desde JS, se graba. Ver nota abajo. |
|
|
59
|
+
| `showinline` | bool | `false` | Muestra dentro de la fila de lista. |
|
|
60
|
+
| `showinline-keyboard` | bool | `false` | En selectores `linkedto`/`linkedfield` con `showinline="true"`, añade una caja de búsqueda en la cabecera del panel para filtrar las opciones por texto. |
|
|
61
|
+
| `bgcolor-dialog` | color | — | Color de fondo del panel de selección del showinline y de los selectores de fecha/hora (`D`/`DT`/`TT`). |
|
|
62
|
+
| `forecolor-dialog` | color | — | Color de primer plano: en el showinline tiñe el texto de las opciones; en los pickers de fecha/hora actúa como color de acento (día/hora seleccionados, botones). |
|
|
63
|
+
| `fontsize-dialog` | int (sp) | — | Tamaño del texto de las opciones del showinline y de los números de los pickers de fecha/hora. |
|
|
64
|
+
| `listview-visible` | bool | `false` | Visible en la vista de lista. |
|
|
65
|
+
| `listview-position` | int | `0` | Orden en la lista. |
|
|
66
|
+
| `listview-line` | int | `0` | Linea en la lista (0=primera, 1=segunda...). |
|
|
67
|
+
| `apply-css` | bool | `true` | Aplica reglas CSS al control. |
|
|
68
|
+
| `class` | string | `""` | Clase CSS. |
|
|
69
|
+
|
|
70
|
+
> **Nota: `readonly` vs `locked` vs `disableedit` NO son sinónimos.**
|
|
71
|
+
>
|
|
72
|
+
> - **`locked="true"`** (estático) y **`disableedit="<fórmula>"`** (dinámico) bloquean la **UI** del control (se OR-ean entre sí). **No** afectan a la persistencia — si el valor se cambia desde JavaScript con `self.X = ...`, sí se graba.
|
|
73
|
+
> - **`readonly="true"` en `<prop>`** excluye el campo del **UPDATE en BD**. **No** bloquea la UI por sí mismo en controles de texto / numéricos / checks / spinners.
|
|
74
|
+
> - **`readonly="true"` en `<coll>`** hace toda la colección no escribible (ni INSERT ni UPDATE).
|
|
75
|
+
> - **Caso especial `<prop type="VD">`**: reinterpreta `readonly` como flag de UI (`true` = solo reproducir, `false` = capturar).
|
|
76
|
+
>
|
|
77
|
+
> Si necesitas un campo visible pero ni editable ni grabable, combina ambos: `locked="true" readonly="true"`. Si solo quieres mostrar texto sin valor en BD, usa `type="L"` (label) en lugar de `type="T" locked="true"`.
|
|
78
|
+
|
|
79
|
+
### 4.4 Textos y fuentes
|
|
80
|
+
|
|
81
|
+
| Atributo | Tipo | Default | Descripción |
|
|
82
|
+
|---|---|---|---|
|
|
83
|
+
| `caption` | string | `""` | Texto placeholder (hint). |
|
|
84
|
+
| `tooltip` | string | `""` | Tooltip al pulsar. |
|
|
85
|
+
| `tooltip-forecolor` | color | — | Color del texto del tooltip. |
|
|
86
|
+
| `floating-tooltip` | bool | `false` | Tooltip flotante (siempre visible). |
|
|
87
|
+
| `fontname` | string | tema | Nombre del fichero de fuente (ej. `Roboto-Regular.ttf`). |
|
|
88
|
+
| `fontsize` | int (sp) | `14` | Tamaño en sp. |
|
|
89
|
+
| `fontbold` | bool | `false` | Negrita. |
|
|
90
|
+
| `fontitalic` | bool | `false` | Cursiva. |
|
|
91
|
+
| `fontunderline` | bool | `false` | Subrayado. |
|
|
92
|
+
| `auto-fontsize` | bool | `false` | Reduce automáticamente el tamaño de fuente para que entre el texto. |
|
|
93
|
+
| `textfont-name` | string | — | Fuente del valor editable. |
|
|
94
|
+
| `textfont-size` | int | — | Tamaño de fuente del valor. Aliases: `textfontsize`, `text-font-size`. |
|
|
95
|
+
| `textfont-bold` | bool | `false` | Valor en negrita. |
|
|
96
|
+
| `textfont-italic` | bool | `false` | Valor en cursiva. |
|
|
97
|
+
| `labelfontsize` | int | — | Tamaño de fuente del label. |
|
|
98
|
+
| `labelfont-name` | string | — | Fuente del label. |
|
|
99
|
+
| `labelfont-bold` | bool | `false` | Label en negrita. |
|
|
100
|
+
| `label-format` | string | `""` | Formato printf del label (ej. `"Total: %.2f"`). |
|
|
101
|
+
| `label-value-decimals` | int | `2` | Decimales del label cuando es numérico. |
|
|
102
|
+
| `label-wrap` | bool | `false` | Permite wrap del texto del label. |
|
|
103
|
+
| `labelbox` | bool | `false` | Dibuja una caja alrededor del label. |
|
|
104
|
+
| `framebox` | bool | `false` | Dibuja una caja alrededor del control completo. |
|
|
105
|
+
| `fixed-text` | bool | `false` | Texto del label fijo (no se traduce con el sistema de idiomas). |
|
|
106
|
+
| `locale` | string | locale del sistema | Locale para formateo de números y fechas. |
|
|
107
|
+
|
|
108
|
+
### 4.5 Colores
|
|
109
|
+
|
|
110
|
+
| Atributo | Tipo | Default | Descripción |
|
|
111
|
+
|---|---|---|---|
|
|
112
|
+
| `bgcolor` | color | heredado | Fondo del control. |
|
|
113
|
+
| `bgcolor-pressed` | color | — | Fondo cuando el control esta pulsado. |
|
|
114
|
+
| `bgcolor-disabled` | color | — | Fondo cuando el control esta deshabilitado. |
|
|
115
|
+
| `forecolor` | color | heredado | Color de texto del label. |
|
|
116
|
+
| `forecolor-pressed` | color | — | Color de texto pulsado. |
|
|
117
|
+
| `forecolor-disabled` | color | — | Color de texto deshabilitado. |
|
|
118
|
+
| `text-bgcolor` | color | — | Fondo del área de texto editable. |
|
|
119
|
+
| `text-bgcolor-focus` | color | — | Fondo del área de texto cuando tiene foco. |
|
|
120
|
+
| `text-forecolor` | color | — | Color del valor escrito. |
|
|
121
|
+
| `text-forecolor-focus` | color | — | Color del valor cuando tiene foco. |
|
|
122
|
+
| `border-color` | color | — | Color del borde del control. |
|
|
123
|
+
| `border-color-focus` | color | — | Color del borde cuando tiene foco. |
|
|
124
|
+
| `link-color` | color | sistema | Color de enlaces en controles `THTML`. |
|
|
125
|
+
| `bar-color` | color | — | Color de la barra de progreso (`progress-bar`). |
|
|
126
|
+
| `track-color` | color | — | Color de la pista (slider, switch). |
|
|
127
|
+
| `track-color-checked` | color | — | Color de la pista cuando esta marcado. |
|
|
128
|
+
| `thumb-color` | color | — | Color del pulsador del slider. |
|
|
129
|
+
| `thumb-color-checked` | color | — | Color del pulsador cuando esta marcado. |
|
|
130
|
+
| `check-color-checked` | color | — | Color del checkbox cuando esta marcado. |
|
|
131
|
+
| `check-color-unchecked` | color | — | Color del checkbox sin marcar. |
|
|
132
|
+
| `status-bar-color` | color | — | Color de la barra de estado del sistema. |
|
|
133
|
+
|
|
134
|
+
### 4.6 Bordes
|
|
135
|
+
|
|
136
|
+
| Atributo | Tipo | Default | Descripción |
|
|
137
|
+
|---|---|---|---|
|
|
138
|
+
| `border` | int (mask) | `0` | Bordes activos: top=1, right=2, bottom=4, left=8. Sumar para combinar (ej. `15` = todos). |
|
|
139
|
+
| `border-top` / `border-bottom` / `border-left` / `border-right` | bool | `false` | Activar bordes individuales. |
|
|
140
|
+
| `border-width` | medida | `0` | Grosor del borde. |
|
|
141
|
+
| `border-corner-radius` | medida | `0` | Radio común de esquinas redondeadas. |
|
|
142
|
+
| `border-corner-radius-top-left` | medida | `0` | Radio esquina superior izquierda. |
|
|
143
|
+
| `border-corner-radius-top-right` | medida | `0` | Radio esquina superior derecha. |
|
|
144
|
+
| `border-corner-radius-bottom-left` | medida | `0` | Radio esquina inferior izquierda. |
|
|
145
|
+
| `border-corner-radius-bottom-right` | medida | `0` | Radio esquina inferior derecha. |
|
|
146
|
+
|
|
147
|
+
### 4.7 Imágenes e iconos
|
|
148
|
+
|
|
149
|
+
| Atributo | Tipo | Default | Descripción |
|
|
150
|
+
|---|---|---|---|
|
|
151
|
+
| `img` | string | `""` | Imagen principal del control. |
|
|
152
|
+
| `img-sel` | string | `""` | Imagen en estado seleccionado. |
|
|
153
|
+
| `img-disabled` | string | `""` | Imagen en estado deshabilitado. |
|
|
154
|
+
| `imgbk` | string | `""` | Imagen de fondo. |
|
|
155
|
+
| `img-rotate` | bool | `false` | Permite rotar la imagen con gesto. |
|
|
156
|
+
| `img-thumb` | string | `""` | Miniatura. |
|
|
157
|
+
| `error-image` | string | `""` | Imagen a mostrar si la carga de imagen falla. |
|
|
158
|
+
| `keep-aspect-ratio` | bool | `true` | Conserva el aspect ratio de la imagen. |
|
|
159
|
+
| `scale-type` | enum | `fit_center` | `fit_center`, `center_crop`, `center_inside`, `fit_xy`, `center` (el motor parsea snake_case; `center_crop` requiere `keep-aspect-ratio="true"`). |
|
|
160
|
+
| `zoom` | bool | `false` | Permite zoom con pellizco. |
|
|
161
|
+
| `zoom-max-scale` | float | `3.0` | Factor máximo de zoom. |
|
|
162
|
+
| `icon` | string | `""` | Icono asociado al control. |
|
|
163
|
+
| `icon-left` / `icon-right` / `icon-top` / `icon-bottom` | string | `""` | Iconos en cada lado del control. |
|
|
164
|
+
| `icon-orientation` | enum | `left` | Posición del icono respecto al texto. |
|
|
165
|
+
| `icon-size` | medida | `24dp` | Tamaño del icono. |
|
|
166
|
+
| `hide-no-picture` | bool | `false` | Oculta el control si no hay imagen asignada. |
|
|
167
|
+
|
|
168
|
+
### 4.8 Datos y enlazado (lookups/combos)
|
|
169
|
+
|
|
170
|
+
| Atributo | Tipo | Default | Descripción |
|
|
171
|
+
|---|---|---|---|
|
|
172
|
+
| `linkedto` | string | `""` | Coleccion remota enlazada (para combo con `linkedfield`). |
|
|
173
|
+
| `linkedfield` | string | `""` | Campo de la coleccion linked a mostrar. |
|
|
174
|
+
| `mapcol` | string | `""` | Coleccion de mapeo (lookup). |
|
|
175
|
+
| `mapfld` | string | `""` | Campo en `mapcol` que coincide con el valor del prop. |
|
|
176
|
+
| `mapcol-values` | string | `""` | Valores embebidos para mapeo rápido (sin coleccion). |
|
|
177
|
+
| `dropcoll` | string | `""` | Coleccion destino al soltar un elemento (drag & drop). |
|
|
178
|
+
| `filter` | formula | `""` | Filtro WHERE para la coleccion linked/lookup. |
|
|
179
|
+
| `linkfilter` | formula | `""` | Filtro adicional aplicado al linkear. |
|
|
180
|
+
| `contents` | string | `""` | Nombre de la coleccion anidada (para `type="Z"`). |
|
|
181
|
+
| `src` | string | `""` | Fuente externa de contenidos. |
|
|
182
|
+
| `allow-view` | bool | `true` | Permite visualizar el contenido del lookup. |
|
|
183
|
+
| `refresh` | bool | `false` | Recarga la coleccion al cambiar este campo. |
|
|
184
|
+
| `refresh-owner` | string | `""` | Campo padre que dispara el refresco. |
|
|
185
|
+
| `forceonchange` | bool | `false` | Fuerza el evento `onchange` aunque el valor no cambie. |
|
|
186
|
+
| `postonchange` | bool | `false` | Lanza `onchange` después de salir del campo (no en tiempo real). |
|
|
187
|
+
| `cache-timeout` | int (ms) | `0` | TTL para cache del valor del lookup. |
|
|
188
|
+
| `colorview` | bool | `false` | Este campo provee el color de la fila en la lista. |
|
|
189
|
+
| `index` | int | `0` | Orden manual en la lista. |
|
|
190
|
+
|
|
191
|
+
### 4.9 Entrada y mascara de texto
|
|
192
|
+
|
|
193
|
+
| Atributo | Tipo | Default | Descripción |
|
|
194
|
+
|---|---|---|---|
|
|
195
|
+
| `mask` | string | `""` | Mascara de entrada (ej. `"##/##/####"` para fecha). |
|
|
196
|
+
| `numeric` | bool | `false` | Solo acepta caracteres numéricos. |
|
|
197
|
+
| `upper` | bool | `false` | Convierte automáticamente a mayusculas. |
|
|
198
|
+
| `lower` | bool | `false` | Convierte automáticamente a minusculas. |
|
|
199
|
+
| `input-type` | enum | `text` | Valores XOne (NO constantes Android): `text`, `numeric`, `numeric_unsigned`, `decimal`, `phone`, `datetime`, `email`, `username`, `uri`, `password`, `none`. Un valor no reconocido lanza error. |
|
|
200
|
+
| `software-input` | enum | `default` | Modo del teclado software. |
|
|
201
|
+
| `enable-software-keyboard` | bool | `true` | Activa el teclado software al recibir foco. |
|
|
202
|
+
| `show-softinput` | bool | `false` | Muestra el teclado automáticamente al obtener foco. |
|
|
203
|
+
| `select-all-text-on-focus` | bool | `false` | Selecciona todo el texto al recibir foco. |
|
|
204
|
+
| `disable-copy-paste` | bool | `false` | Desactiva las opciones copiar/pegar del sistema. |
|
|
205
|
+
| `next-focus` | string | `""` | Nombre del siguiente campo al pulsar Enter/Tab. |
|
|
206
|
+
| `show-clear-toggle` | bool | `false` | Muestra botón "x" para limpiar el campo. |
|
|
207
|
+
| `show-counter` | bool | `false` | Muestra contador de caracteres. |
|
|
208
|
+
| `show-password-visibility-toggle` | bool | `false` | Muestra botón para ver/ocultar el password (tipo `X`). |
|
|
209
|
+
| `autocomplete` | bool | `false` | Activa el autocompletado del sistema. |
|
|
210
|
+
| `autocomplete-suggestions` | string | `""` | Sugerencias de autocompletado separadas por `;`. |
|
|
211
|
+
| `autolink` | bool | `false` | Convierte automáticamente URLs y emails en enlaces. |
|
|
212
|
+
| `autosave` | bool | `false` | Guarda automáticamente al cambiar el campo. |
|
|
213
|
+
| `pull-to-refresh` | bool | `false` | Activa el gesto "pull to refresh". |
|
|
214
|
+
|
|
215
|
+
### 4.10 Fechas y horas
|
|
216
|
+
|
|
217
|
+
| Atributo | Tipo | Default | Descripción |
|
|
218
|
+
|---|---|---|---|
|
|
219
|
+
| `date-format` | string | locale | Formato de fecha (ej. `"dd/MM/yyyy"`). |
|
|
220
|
+
| `time-format` | string | locale | Formato de hora (ej. `"HH:mm:ss"`). |
|
|
221
|
+
| `utc` | bool | `false` | Trata el valor como UTC. |
|
|
222
|
+
| `use-unix-epoch` | bool | `false` | Almacena el valor como timestamp Unix (epoch). |
|
|
223
|
+
| `calendar-viewmode` | enum | `month` | `month`, `week`, `day`. Modo del calendario. |
|
|
224
|
+
| `show-events` | bool | `true` | Muestra eventos en el calendario. |
|
|
225
|
+
| `time-interval` | int | `1` | Intervalo de minutos en el time picker. |
|
|
226
|
+
| `date-mode` | int | — (nuevo) | Estilo del selector de fecha (`D`/`DT`). Ausente o `4` = nuevo diseño moderno (calendario con deslizamiento lateral de meses); `0`–`3` = selectores nativos del sistema (0 por defecto del dispositivo, 1 oscuro, 2 claro, 3 oscuro). |
|
|
227
|
+
| `time-mode` | int | — (nuevo) | Estilo del selector de hora (`TT` y la hora de `DT`). Ausente o `4` = nuevo diseño moderno (ruedas de hora/minuto); `0`–`3` = selectores nativos del sistema. |
|
|
228
|
+
|
|
229
|
+
> Nota: `type="TT"` (solo hora) requiere `mask="Hh#:#Mm"` para que el campo sea visible.
|
|
230
|
+
|
|
231
|
+
> **Nuevo selector por defecto:** los campos `D`/`DT`/`TT` usan por defecto un selector moderno (calendario con swipe lateral entre meses y ruedas para la hora). Para volver al selector nativo del sistema, fijar `date-mode`/`time-mode` a `0`. El selector admite `bgcolor-dialog`, `forecolor-dialog` (color de acento) y `fontsize-dialog`.
|
|
232
|
+
|
|
233
|
+
### 4.11 Sliders, Progress, Rating, Stepper, OTP, NavigationBar, Kanban, CoverFlow, Markdown
|
|
234
|
+
|
|
235
|
+
| Atributo | Tipo | Default | Descripción |
|
|
236
|
+
|---|---|---|---|
|
|
237
|
+
| `viewmode` | enum | — | Slider/Progress: `slider`, `range-slider`, `rounded-slider`, `progress-bar`, `circular-progress-bar`, `rating-bar`. Numérico compacto: `stepper`. Barra de navegación Material 3: `navbar`. Texto/numérico OTP: `otp`. Texto formateado: `markdown` (solo `type="T"`). Lista (Z): `kanban`, `coverflow`, `chipsview` (además de `recyclerview`, `slideview`, etc.). |
|
|
238
|
+
| `orientation` | enum | `horizontal` | `horizontal` o `vertical`. |
|
|
239
|
+
| `step-size` | float | `1` | Incremento del slider o del stepper (en stepper debe ser `> 0`). |
|
|
240
|
+
| `bar-width` | medida | — | Ancho de la barra de progreso. |
|
|
241
|
+
| `indeterminate` | bool | `false` | Modo indeterminado (animación sin valor fijo). |
|
|
242
|
+
| `clockwise` | bool | `true` | Sentido horario para `circular-progress-bar`. |
|
|
243
|
+
| `from` | float | `0` | Valor mínimo del `range-slider`. |
|
|
244
|
+
| `to` | float | `100` | Valor máximo del `range-slider`. |
|
|
245
|
+
| `label-format` | string | `""` | Formato del label del slider (ej. `"%.0f%%"`). |
|
|
246
|
+
| `track-thickness` | medida | — | Grosor de la pista de la barra. |
|
|
247
|
+
|
|
248
|
+
#### 4.11a Stepper (`viewmode="stepper"`, `type="N"`)
|
|
249
|
+
|
|
250
|
+
Control compacto `−` / `+` para valores **enteros**. Auto-repite cada 80 ms al mantener pulsado.
|
|
251
|
+
|
|
252
|
+
| Atributo | Tipo | Default | Descripción |
|
|
253
|
+
|---|---|---|---|
|
|
254
|
+
| `min` | int | `0` | Valor mínimo. Si el valor actual es menor, se clampa al cargar. |
|
|
255
|
+
| `max` | int | `100` | Valor máximo. Debe ser `>= min` (si no, lanza `IllegalArgumentException`). |
|
|
256
|
+
| `step-size` | int | `1` | Incremento por pulsacion. Debe ser `> 0`. |
|
|
257
|
+
| `wrap` | bool | `false` | Si `true`, al sobrepasar `max` vuelve a `min` (selector ciclico). |
|
|
258
|
+
| `bar-color` | color | — | Color de fondo de los botones `−` / `+`. |
|
|
259
|
+
| `forecolor` | color | — | Color del número del centro. |
|
|
260
|
+
| `disableedit` | formula/bool | `false` | Si evalua a `true`, los botones quedan deshabilitados. |
|
|
261
|
+
|
|
262
|
+
API JavaScript: `getValue()`, `setValue(n)`, `setMin(n)`, `setMax(n)`, `setStepSize(n)` (en el control).
|
|
263
|
+
|
|
264
|
+
#### 4.11b OTP (`viewmode="otp"`, `type="T"` o `type="N"`)
|
|
265
|
+
|
|
266
|
+
Entrada de códigos de un solo uso con cajas individuales, auto-avance, backspace inverso y paste distribuido. Se persiste como string concatenado sin separadores.
|
|
267
|
+
|
|
268
|
+
| Atributo | Tipo | Default | Descripción |
|
|
269
|
+
|---|---|---|---|
|
|
270
|
+
| `digits` | int | `6` | Número de cajas (debe ser positivo). Una caja por carácter. |
|
|
271
|
+
| `secret` | bool | `false` | Si `true`, oculta los caracteres (modo password). Útil para PINs. |
|
|
272
|
+
| `auto-submit` | bool | `true` | Si `true`, al rellenar la última caja oculta el teclado. |
|
|
273
|
+
| `allow-letters` | bool | `false` | Si `true`, acepta letras además de digitos. |
|
|
274
|
+
| `box-size` | medida | `44p` | Tamaño (ancho y alto) de cada caja. |
|
|
275
|
+
| `box-spacing` | medida | `8p` | Separación horizontal entre cajas. |
|
|
276
|
+
| `box-color` | color | — | Color de fondo de las cajas en estado normal. |
|
|
277
|
+
| `box-color-focus` | color | usa `box-color` | Color de fondo de la caja con foco. |
|
|
278
|
+
| `forecolor` | color | — | Color del texto dentro de las cajas. |
|
|
279
|
+
| `disableedit` | formula/bool | `false` | Si evalua a `true`, control en solo lectura. |
|
|
280
|
+
|
|
281
|
+
API JavaScript: `getOtpValue()`, `clearOtp()`, `focusOtp()` (en el control).
|
|
282
|
+
|
|
283
|
+
#### 4.11c Kanban (`viewmode="kanban"`, `type="Z"`)
|
|
284
|
+
|
|
285
|
+
Tablero estilo Trello/Jira con drag&drop entre columnas. Al soltar una card, el framework asigna al campo `kanban-column-field` el valor de la columna destino y guarda automáticamente.
|
|
286
|
+
|
|
287
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
288
|
+
|---|---|---|---|---|
|
|
289
|
+
| `contents` | string | **Si** | — | Nombre del `<contents>` vinculado. |
|
|
290
|
+
| `kanban-column-field` | string | **Si** | — | Campo del item cuyo valor determina la columna. |
|
|
291
|
+
| `kanban-columns` | string | **Si** | — | Valores posibles separados por `\|` (ej. `TODO\|DOING\|DONE`). Define orden y número de columnas. |
|
|
292
|
+
| `kanban-column-titles` | string | No | usa los valores | Títulos visibles separados por `\|`. |
|
|
293
|
+
| `kanban-column-colors` | string | No | gris claro | Colores de fondo de las cabeceras separados por `\|`. Acepta `#RRGGBB` y `#AARRGGBB`. |
|
|
294
|
+
| `kanban-column-width` | medida | No | `280p` | Ancho de cada columna. |
|
|
295
|
+
| `kanban-card-title-field` | string | No | — | Campo a mostrar como título (modo simple). |
|
|
296
|
+
| `kanban-card-subtitle-field` | string | No | — | Campo a mostrar como subtítulo (modo simple). |
|
|
297
|
+
| `kanban-card-bgcolor` | color | No | blanco | Color de fondo de las cards. |
|
|
298
|
+
| `draggable` | bool | No | `true` | Si `false`, deshabilita drag&drop. |
|
|
299
|
+
| `disableedit` | formula/bool | No | `false` | Si evalua a `true`, las cards no son arrastrables. |
|
|
300
|
+
|
|
301
|
+
**Modos de renderizado:**
|
|
302
|
+
- **Simple:** activo si esta presente al menos uno de `kanban-card-title-field` / `kanban-card-subtitle-field`. La card muestra título + subtítulo.
|
|
303
|
+
- **Objeto XOne completo:** activo si **ninguno** de esos atributos esta presente. La card usa el `<frame>` declarado en la coll del contents.
|
|
304
|
+
|
|
305
|
+
Cards cuyo valor no coincida con ninguna columna declarada **no se muestran**.
|
|
306
|
+
|
|
307
|
+
#### 4.11d Cover Flow (`viewmode="coverflow"`, `type="Z"`)
|
|
308
|
+
|
|
309
|
+
Variante de `slideview` con efecto Cover Flow estilo iTunes. Hereda toda la configuración de `slideview`.
|
|
310
|
+
|
|
311
|
+
| Atributo | Tipo | Default | Rango | Descripción |
|
|
312
|
+
|---|---|---|---|---|
|
|
313
|
+
| `cover-flow-min-scale` | float | `0.75` | `0.0` – `1.0` | Escala mínima de las cards laterales. |
|
|
314
|
+
| `cover-flow-min-alpha` | float | `0.6` | `0.0` – `1.0` | Opacidad mínima de las cards laterales. |
|
|
315
|
+
| `cover-flow-rotation` | float (grados) | `0` | — | Rotación 3D sobre el eje Y de las cards laterales. Si `!= 0`, aplica perspectiva 3D real. Típicos: `25`–`45`. |
|
|
316
|
+
|
|
317
|
+
Valores de scale/alpha fuera de `[0,1]` se recortan automáticamente.
|
|
318
|
+
|
|
319
|
+
#### 4.11e Chips (`viewmode="chipsview"`, `type="Z"`)
|
|
320
|
+
|
|
321
|
+
Conjunto de **chips Material** (pastillas redondeadas) con *wrap* automático a varias filas. Cada fila del `<contents>` vinculado se pinta como un chip.
|
|
322
|
+
|
|
323
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
324
|
+
|---|---|---|---|---|
|
|
325
|
+
| `contents` | string | **Si** | — | Nombre del `<contents>` vinculado (su colección aporta los chips). |
|
|
326
|
+
| `width` / `height` | medida | No | `wrap` | Tamaño del contenedor de chips. `height="-2"` = ajuste al contenido. |
|
|
327
|
+
|
|
328
|
+
En la **colección del contents** se declaran (sobre sus `<prop>`):
|
|
329
|
+
|
|
330
|
+
| Atributo de prop | Obligatorio | Descripción |
|
|
331
|
+
|---|---|---|
|
|
332
|
+
| `chip-value` | **Si** (en una prop) | Marca la prop cuyo valor es el **texto del chip**. |
|
|
333
|
+
| `chip-close-enabled` | No | Marca una prop booleana; si su valor es verdadero el chip muestra una "x" para cerrarse. |
|
|
334
|
+
|
|
335
|
+
Notas de uso:
|
|
336
|
+
- Para chips generados al vuelo, la colección puede ser **en memoria**: `volatile="true"` + **`manual-load="true"`** + **`loadall="true"`** en la `<coll>` (si no, el control la recarga desde BD y la deja vacía). Se rellena por JS con `createObject()` + **`addItem()`** (NO `save()`), luego `lock()` y `ui.refresh("NOMBRE_DEL_Z")`.
|
|
337
|
+
- **Todos los chips son seleccionables (toggle)** → sirven directamente como *filter chips*. Eventos del prop: `onitemschanged="h(e)"` (el handler recibe `e.values` = array con los textos marcados y `e.ids` = sus ids), `onitemremoved="h(e)"` al cerrar un chip (`e.value` / `e.id`). Alternativa imperativa: `ui.getView(self).getControl("NOMBRE").getCheckedValues()` → `[{id, value}]`.
|
|
338
|
+
|
|
339
|
+
#### 4.11e Markdown (`viewmode="markdown"`, `type="T"`)
|
|
340
|
+
|
|
341
|
+
Renderiza el contenido del campo como Markdown CommonMark base (cabeceras, enfasis, listas, enlaces, imágenes, blockquotes, código inline / en bloque, reglas horizontales). **No introduce atributos propios** — aplican los atributos comunes de `type="T"` (`fontsize`, `forecolor`, `align`, margenes, etc.).
|
|
342
|
+
|
|
343
|
+
**No soportado por defecto:** tablas, strikethrough, task lists, HTML embebido, syntax highlighting.
|
|
344
|
+
|
|
345
|
+
#### 4.11f NavigationBar pill animada (`viewmode="navbar"`, `type="N"`)
|
|
346
|
+
|
|
347
|
+
Barra de navegación Material 3 con indicador "pill" deslizante. El valor del campo es el índice del destino activo (0..N−1); tocar un destino lo escribe y dispara el `<onchange>`, y un cambio del valor por código (con refresco) desliza la pill. Los destinos se declaran **inline** (no desde un `<contents>`).
|
|
348
|
+
|
|
349
|
+
| Atributo | Tipo | Default | Descripción |
|
|
350
|
+
|---|---|---|---|
|
|
351
|
+
| `nav-titles` | string | — | Títulos de los destinos separados por barra vertical. Define el número de pills. |
|
|
352
|
+
| `nav-icons` | string | — | Iconos (recurso, como los `img` de botón) separados por barra vertical, emparejados por posición con los títulos. Se tiñen con el color activo / inactivo. |
|
|
353
|
+
| `pill-color` | color | `#E8DEF8` | Color de la pill deslizante. |
|
|
354
|
+
| `pill-text-color` (o `forecolor`) | color | `#1D192B` | Color de icono + texto del destino activo. |
|
|
355
|
+
| `nav-text-color` | color | `#49454F` | Color de icono + texto de los destinos inactivos. |
|
|
356
|
+
| `bar-color` / `bgcolor` | color | transparente | Color de fondo de la barra. |
|
|
357
|
+
| `label-visibility` | enum | `always` | `always`, `selected` (solo el activo) o `never`. |
|
|
358
|
+
| `animation-duration` | int (ms) | `300` | Duración del deslizamiento. |
|
|
359
|
+
| `pill-corner-radius` | medida | mitad de la altura | Radio de las esquinas de la pill. |
|
|
360
|
+
| `nav-icon-size` | medida (dp) | `24` | Tamaño del icono. |
|
|
361
|
+
| `disableedit` / `locked` | formula/bool | `false` | Si evalúa a `true`, la barra no es tocable ni muestra efecto al pulsar (queda como indicador). |
|
|
362
|
+
|
|
363
|
+
El índice se acota a `[0, nº de pills − 1]`; un valor negativo cae a `0` y uno mayor que el máximo al último, corrigiéndose también en el campo. API JavaScript: `getValue()`, `setValue(n)`, `getItemCount()` (en el control).
|
|
364
|
+
|
|
365
|
+
### 4.12 Animaciones y eventos inline
|
|
366
|
+
|
|
367
|
+
| Atributo | Tipo | Default | Descripción |
|
|
368
|
+
|---|---|---|---|
|
|
369
|
+
| `animation-in` | string | `""` | Macro de animación de entrada (ej. `##RIGHT_IN##`, `##BOTTOM_IN##`). |
|
|
370
|
+
| `animation-in-delay` | int (ms) | `0` | Retardo antes de ejecutar la animación de entrada. |
|
|
371
|
+
| `animation-out` | string | `""` | Macro de animación de salida. |
|
|
372
|
+
| `repeat-mode` | enum | `restart` | **Solo animaciones Lottie en `type="IMG"`.** `restart` (vuelve a empezar) o `reverse` (va y vuelve). La animación arranca sola en bucle infinito, así que sin declararlo se repite desde el inicio. |
|
|
373
|
+
| `clip-text-to-bounds` | bool | `false` | **Solo animaciones Lottie en `type="IMG"`.** Recorta el texto de párrafo a la caja definida en el diseño. Una línea que desborde la altura no se dibuja en absoluto, de ahí que venga apagado: si la fuente no es la del diseño, el texto se reparte en más líneas y desaparece contenido. |
|
|
374
|
+
| `ripple-effect` | bool | `true` | Efecto ripple Material Design al pulsar. |
|
|
375
|
+
| `onclick` | script | `""` | Script JavaScript inline al pulsar el control. **Solo como atributo**, nunca como nodo hijo `<onclick>`. **El valor es SIEMPRE JS ejecutable, NO el nombre de un nodo.** `onclick="abrirTareas"` (sin paréntesis) evalúa `abrirTareas` como variable JS global undefined y el botón no hace nada silenciosamente. **Modo estricto:** cada sentencia debe terminar en `;` (incluida la última, también si el script acaba con un bloque `{...}`). Para invocar un nodo XML custom de la coll usar `method="executenode(nombreNodo)"` o, desde JS, `self.ExecuteNode('nombreNodo');` (nombre como string literal entre comillas, **no** `ExecuteNode(nombreNodo)` ni `ExecuteNode(función())`). |
|
|
376
|
+
| `onchange` | script | `""` | Script al cambiar el valor. Misma regla que `onclick` (script inline, `;` al final de cada sentencia). |
|
|
377
|
+
| `onfocus` | script | `""` | Script al recibir foco. Misma regla que `onclick`. |
|
|
378
|
+
| `ontouchdown` | script | `""` | **Solo `type="B"`.** Script JavaScript inline al presionar el botón (en el instante en que el dedo lo toca). Misma regla que `onclick`. Junto con `ontouchup` permite interacciones "mantener pulsado". El objeto evento `e` expone `e.x`/`e.y` (coordenadas del toque). |
|
|
379
|
+
| `ontouchup` | script | `""` | **Solo `type="B"`.** Script JavaScript inline al soltar el botón (al levantar el dedo o cancelarse el gesto). Misma regla que `onclick`. Se dispara antes que `onclick` si ambos están definidos. |
|
|
380
|
+
| `execute-async` | bool | `false` | Ejecuta el script de eventos de forma asíncrona. |
|
|
381
|
+
| `load-async` | bool | `false` | Carga del control de forma asíncrona. |
|
|
382
|
+
| `abort-on-error` | bool | `false` | Aborta la cadena de eventos si se produce un error. |
|
|
383
|
+
| `sound` | string | `""` | Sonido a reproducir al interactuar con el control. |
|
|
384
|
+
|
|
385
|
+
### 4.13 Multimedia y archivos adjuntos
|
|
386
|
+
|
|
387
|
+
| Atributo | Tipo | Default | Descripción |
|
|
388
|
+
|---|---|---|---|
|
|
389
|
+
| `attach-allowed` | string | `""` | Tipos MIME permitidos para adjuntos (ej. `"image/*"`, `"application/pdf"`). |
|
|
390
|
+
| `file-maxsize` | int (KB) | `0` | Tamaño máximo del fichero adjunto en KB. `0` = sin limite. |
|
|
391
|
+
| `file-maxwidth` | int | `0` | Ancho máximo para imágenes capturadas. |
|
|
392
|
+
| `file-maxheight` | int | `0` | Alto máximo para imágenes capturadas. |
|
|
393
|
+
| `file-quality` | int (%) | `90` | Calidad JPEG para imágenes. |
|
|
394
|
+
| `max-duration` | int (s) | `0` | Duración máxima para video/audio. `0` = sin limite. |
|
|
395
|
+
| `use-internal-camera` | bool | `false` | Captura con la cámara que trae el framework en vez de abrir la app de cámara del dispositivo. |
|
|
396
|
+
| `motion-photo` | bool | `false` | Captura una foto en movimiento: un JPG con un clip de vídeo corto embebido detrás, que las galerías compatibles reproducen. Requiere `use-internal-camera="true"` para funcionar en cualquier versión de Android; sin él lo tiene que implementar la app de cámara del dispositivo (Android 16 o superior). Ignora los atributos `file-*`, porque recomprimir la imagen tiraría el vídeo. |
|
|
397
|
+
| `apply-format-to-file` | bool | `false` | Aplica el formato al fichero resultante (para `type="DR"`). |
|
|
398
|
+
|
|
399
|
+
### 4.14 Machine Learning y camara avanzada
|
|
400
|
+
|
|
401
|
+
| Atributo | Tipo | Default | Descripción |
|
|
402
|
+
|---|---|---|---|
|
|
403
|
+
| `analyze-exif-metadata` | bool | `false` | Gira el fichero de imagen según la orientación con la que se hizo la foto, para que se vea derecho en cualquier visor. Girar obliga a recomprimir la imagen; si la foto es una foto en movimiento, el clip de vídeo se conserva. |
|
|
404
|
+
| `ml-model` | string | `""` | Ruta del modelo TensorFlow Lite (`.tflite`). |
|
|
405
|
+
| `ml-model-quantized` | bool | `false` | Indica que el modelo esta cuantizado. |
|
|
406
|
+
| `ml-classes` | string | `""` | Ruta del fichero de clases/etiquetas del modelo. |
|
|
407
|
+
| `ml-input-size` | int | — | Tamaño de entrada del modelo (en pixeles). |
|
|
408
|
+
| `ml-threads` | int | `1` | Número de hilos para inferencia. |
|
|
409
|
+
| `ml-use-gpu` | bool | `false` | Usa GPU para inferencia. |
|
|
410
|
+
| `ml-use-nnapi` | bool | `false` | Usa Android NNAPI para inferencia. |
|
|
411
|
+
| `ml-use-yolo-v5` | bool | `false` | Activa el modo de deteccion YOLOv5. |
|
|
412
|
+
| `ml-filter-min-confidence` | float | `0.5` | Confianza mínima para mostrar un resultado (0.0-1.0). |
|
|
413
|
+
|
|
414
|
+
### 4.15 Atributos varios
|
|
415
|
+
|
|
416
|
+
| Atributo | Tipo | Default | Descripción |
|
|
417
|
+
|---|---|---|---|
|
|
418
|
+
| `classid` | string | `""` | Control especial por ID de clase: `mobbsignview` (firma Mobbsign), `vaxtorocr` (OCR Vaxtoro), `xonecharts` (gráficos avanzados). |
|
|
419
|
+
| `phone` | bool | `false` | Permite marcar el número de telefono al pulsar. |
|
|
420
|
+
| `barcode` | bool | `false` | Permite escanear un código de barras al pulsar. |
|
|
421
|
+
| `method` | string | `""` | Nombre del método ejecutable asociado. |
|
|
422
|
+
| `message` | string | `""` | Mensaje de confirmacion antes de ejecutar la acción. |
|
|
423
|
+
| `scale` | float | `1.0` | Escala global del control. |
|
|
424
|
+
| `accessibility-label` | string | `""` | Etiqueta para lectores de pantalla (accesibilidad). |
|
|
425
|
+
| `draggable-scrollbar` | bool | `false` | Scrollbar arrastrable con el dedo. |
|
|
426
|
+
| `show-scrollbar` | bool | `true` | Muestra la barra de desplazamiento. |
|
|
427
|
+
| `paging-enabled` | bool | `false` | Activa paginación en listas. |
|
|
428
|
+
| `page-swipe` | bool | `false` | Permite cambiar de página deslizando. |
|
|
429
|
+
| `records-limit` | int | `0` | Limite de registros visibles. `0` = sin limite. |
|
|
430
|
+
| `edit-inrow` | bool | `false` | Edita el registro directamente en la fila de lista. |
|
|
431
|
+
| `grid-header` | bool | `false` | Muestra cabecera de columna en grid. |
|
|
432
|
+
| `click-anywhere` | bool | `false` | Hace que el clic sobre el texto del control abra su picker, sin necesidad de pulsar el botón/lupa. Aplica a: campos con `linked-to` + `linked-field` y `showinline="true"` (excepto `viewmode="spinner"`) — el texto abre el selector de registro enlazado; `type="D"`, `type="DT"` y `type="TT"` (y `type="T"` con `mask="Hh#:#Mm"`) — el texto de fecha abre `DatePicker` y el de hora abre `TimePicker` (en `DT` cada zona dispara su propio diálogo). Ignorado en cualquier otro control. |
|
|
433
|
+
| `icon-inside` | bool | `false` | En controles con botón lateral (`linked-to` + `linked-field` con `showinline="true"` excepto `viewmode="spinner"`, `linked-to` + `linked-field` con `showinline="false"`, `type="D"`, `type="DT"`, `type="TT"`), si está activo el icono se pinta dentro del propio texto en lugar de a su lado, y el clic sobre la zona del icono abre el picker del control. |
|
|
434
|
+
| `icon-align` | enum | `right` | En los mismos controles que `icon-inside`. Posiciona el icono respecto al texto: `left` lo coloca antes del texto, `right` (default) lo deja al final. Los valores `top` y `bottom` se aceptan pero se tratan como `right` en esta versión. |
|
|
435
|
+
| `check-type` | enum | (omitido) | Para `type="NC"`: `toggle`, `switch`, `radio`. Si se omite o se pasa otro valor, se renderiza un CheckBox estándar. |
|
|
436
|
+
| `radio-group` | string | `""` | Grupo de radio buttons (para `check-type="radio"`). |
|
|
437
|
+
| `code-type` | string | `""` | Tipo de código para `type="VD"`: `qr`, `barcode`, `any`. |
|
|
438
|
+
| `show-user-location` | bool | `false` | Muestra la ubicación del usuario en el mapa (`type="Z" viewmode="mapview"/"maplibre"/"openstreetmap"`). |
|
|
439
|
+
|