# j-Modal

> Est une alternative simple à j-Form.

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

Est une alternative simple à `j-Form`.

- Fonctionne uniquement avec `+v17`
- Le composant déplace le contenu de ce composant sous la balise `<body>` (à cause du positionnement)


__Configuration__ :

- Titre modal `title {String}` (il remplace un `HTML` dans l'élément label de l'en-tête)
- `width {Number}` largeur maximale modale
- Condition `if {String}` pour l'affichage du modal, elle est comparée à la valeur contenue dans `path`
- `icon {String}` Icône totale sans `ti-`
- `reload {String}` lien vers un `function(modal_component)` global et il est exécuté si le formulaire est affiché
- Lien `submit {String}` vers un `function(hide)` global et il est exécuté si le bouton de soumission est enfoncé
- `cancel {String}` est lié à un `function(hide)` global et il est exécuté si le bouton d'annulation est enfoncé
- `enter {Boolean}` capture automatiquement la clé `enter` et effectue la soumission (par défaut : `false`)
- `center {Boolean}` centre le formulaire au milieu de l'écran
- `autofocus {Boolean/String}` peut focaliser une entrée. `String` === `jQuery selector` pour l'entrée
- `default {String}` un alias court pour `DEFAULT(default, true)`
- `zindex {Number}` peut affecter le z-index (par défaut : `12`)
- `align {Number}` aligne le modal `0` centré (par défaut), `1` en bas à droite, `2` en bas à gauche, `3` en haut à gauche, `4` en haut à droite
- `height {Number}` une minute. hauteur si le contenu a une taille inférieure à celle définie `height`
- __NOUVEAU__ `bg {Boolean}` peut activer/désactiver un calque d'arrière-plan (par défaut : `true`)
- __NOUVEAU__ `scrollbar {Boolean}` peut activer/désactiver la barre de défilement (par défaut : `false`)

__Bon à savoir__ :

Le contenu du `j-Modal` est divisé en 3 parties : `header`, `body` et `footer`. Chaque partie doit être définie. Le composant ajoute des classes CSS à chaque partie, par exemple le premier `div` contiendra `ui-modal-header`, le deuxième `ui-modal-body` et le troisième `ui-modal-footer`.

---

Ce composant prend en charge l'évaluation dynamique du contenu de `<script type="text/html">`. L'exemple ci-dessous contient un script avec HTML et le composant évalue le contenu si le j-Modal sera affiché (une seule fois).

```html
<ui-component name="modal" path="path" config="config">
	<script type="text/html">
		A CONTENT
	</script>
</ui-component>
```

Utilisez-le avec `<ui-component name="modal">`. Lorsque le composant n'est pas encore chargé, jComponent le télécharge lors de la première utilisation depuis l'adresse dans `DEF.fallback` (le CDN Componentator par défaut). Auteur : Peter Širka. Source : le référentiel de composants Componentator, licence MIT.

```html example.html
<ui-component name="modal" path="common.form" config="if:user;width:600;submit:usermodal_submit;icon:home" class="hidden">

	<!-- HEADER -->
	<div>
		<span class="link cancel"><i class="ti ti-times"></i></span>
		<label>Your title</label>
	</div>

	<!-- BODY -->
	<div>
		<div class="padding">
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi rerum, consequatur quod quisquam blanditiis voluptatum! Assumenda harum, quaerat iste nisi.
			<br />
			<br />
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi rerum, consequatur quod quisquam blanditiis voluptatum! Assumenda harum, quaerat iste nisi.
			<br />
			<br />
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi rerum, consequatur quod quisquam blanditiis voluptatum! Assumenda harum, quaerat iste nisi.
			<br />
			<br />
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi rerum, consequatur quod quisquam blanditiis voluptatum! Assumenda harum, quaerat iste nisi.
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi rerum, consequatur quod quisquam blanditiis voluptatum! Assumenda harum, quaerat iste nisi.
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi rerum, consequatur quod quisquam blanditiis voluptatum! Assumenda harum, quaerat iste nisi.
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quasi rerum, consequatur quod quisquam blanditiis voluptatum! Assumenda harum, quaerat iste nisi.
		</div>
	</div>

	<!-- FOOTER -->
	<div>
		<span class="link cancel">Cancel</span>
		<button name="submit"><i class="ti ti-save"></i>Submit form</button>
	</div>

</ui-component>

<script>

	function usermodal_submit(hide) {
		alert('SUBMIT');
		hide();
	}

	var common = {};

	// Show the form
	common.form = 'user';
</script>
```
