# j-UIBuilder

> Este componente representa la aplicación diseñada mediante UI Builder. Puede cargar la aplicación a través de la ruta especificada en el componente o mediante la opción config.url. La ruta puede contener una dirección URL al JSO

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: es
Content-SHA256: 2943e763b7d62047d4de2763fde4ca29410c9dfef8d1c513260f3fa9ebecf360
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: not-recorded

Este componente representa la aplicación diseñada mediante UI Builder. Puede cargar la aplicación a través del `path` especificado en el componente o mediante la opción `config.url`. La ruta puede contener una dirección URL al esquema de la aplicación `JSON` o al objeto de la aplicación (JSON analizado).


__Configuración__:

- `app {String}` un enlace al método/variable donde se almacenará la instancia `app`
- `url {String}` un enlace al esquema de la aplicación (debe estar en el formato `json`)
- `css {Boolean}` aplica el estilo de la aplicación al elemento actual (predeterminado: `true`)
- `id {String}` sobrescribe el ID de la aplicación

__Métodos__:

- `component.load(data)` el método carga `app` en el elemento actual

__Propiedades__:

- `component.app` contiene una instancia `app`

## ¿Cómo manejar los datos?

```html
<ui-component name="uibuilder" ... config="app:myapphandler"></ui-component>

<script>

	function myapphandler(app) {

		// app.component {jComponent}
		// app.schema {Object} uibuilder compiled design
		// app.schema.inputs {Array Objects}
		// app.schema.outputs {Array Objects}

		// How to capture data?
		app.on('output', function(meta) {
			// meta.id {String} output identifier
			// meta.data {Object} raw data from the builder
			// meta.app {Object} app instance
			// meta.instance {Object} which instance sent data?
			// meta.instanceid {String} an instance identifier
			// meta.component {Object} which component sent data?
			// meta.componentid {String} a component identifier
			// meta.err {String} optional, error handler (nullable)
			// meta.output {String} an output name
			// meta.note {String} optional, a note
			// meta.ref {String} an internal reference

			AJAX('POST /yourapi/', meta.data, function(response) {
				// What next?
			});

		});

		// How to inject data?
		// Example
		app.on('ready', function() {
			// First, you must know input identifier
			app.input('cidlm5caacg_load', { email: '@' }, console.log);
		});

	}

</script>
```

Úselo con `<ui-component name="uibuilder">`. Cuando el componente aún no está cargado, jComponent lo descarga en el primer uso desde la dirección en `DEF.fallback` (la CDN Componentator de forma predeterminada). Autor: Peter Širka. Fuente: repositorio de componentes Componentator, licencia MIT.

```html example.html
<ui-component name="uibuilder" config="url:https://cdn.componentator.com/uibuilder/demo/render/dashboard.json"></ui-component>
```
