Regroupe la plupart des fonctions génériques j3pXxx (ancien J3Poutils.js)
- Description:
Regroupe la plupart des fonctions génériques j3pXxx (ancien J3Poutils.js)
- Source:
Methods
(static) j3pActive(id)
- Description:
Active un input standard ATTENTION, j3pDesactive gère les champs mathquill mais pas cette fct
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
id |
string |
(static) j3pAddClass(selector, className, parentopt) → {boolean}
- Description:
Ajoute une classe css à un ou des éléments désignés par selector Pour l’ajouter à un elt déjà référencé, utilisez plutôt elt.classList.add(className)
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
selector |
string | sélecteur css (préfixe #Mepact toujours ajouté) ou élément |
||
className |
string | |||
parent |
HTMLElement |
<optional> |
document
|
Si fourni on se limite aux enfants de cet élément |
Returns:
false si y’a eu un pb, true sinon
- Type
- boolean
(static) j3pAddContent(container, content, optionsopt)
- Description:
Ajoute (ou remplace) du contenu dans un élément. Remplace les \n par des tags br insérés avec du appendChild, sauf si y’a d’autres tags (dans ce cas ça fait du innerHTML, avec un warning car ça peut détruire des listeners ou des pointeurs vers les éléments existants)
- Source:
Parameters:
| Name | Type | Attributes | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
container |
HTMLElement | string | ||||||||||
content |
string | ||||||||||
options |
Object |
<optional> |
Properties
|
Throws:
-
si le conteneur n’existe pas
- Type
- Error
(static) j3pAddElt(container, tag, contentopt, propsopt) → {HTMLElement}
- Description:
Ajoute un élément html dans le conteneur et retourne cet élément (la syntaxe avec props en 2e arg et content en 3e fonctionne aussi) À remplacer par addElement de sesajs/dom
- Source:
- Deprecated:
- Yes
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
container |
string | HTMLElement | ||
tag |
string | ||
content |
string | HTMLElement | NodeList |
<optional> |
Contenu à mettre dans l’élément |
props |
object |
<optional> |
propriétés éventuelles à coller à l’elt créé (id, name, …)
Attention, pour les styles il faut passer le nom des propriétés en camelCase (pas de -), par ex |
Throws:
-
si le conteneur n’existe pas
- Type
- Error
Returns:
- Type
- HTMLElement
(static) j3pAddTxt(container, textContent) → {Text}
- Description:
Ajoute du texte à container (avec createTextNode, gére les < & co mais aucun tag ni \n qui sera affiché tel quel à l’écran)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
container |
HTMLElement | string | |
textContent |
string |
Throws:
-
si le conteneur n’existe pas
- Type
- Error
Returns:
le textNode
- Type
- Text
(static) j3pAfficheBibli(ressource, options, next)
- Description:
Affiche l’exo puis appelle next (avec une erreur ou sans argument) On lui passera la callback traite_resultat pour gérer les retours du flash
- Source:
Parameters:
| Name | Type | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
ressource |
Ressource | La ressource de la bibli (objet https://bibliotheque.sesamath.net/vendors/sesamath/Ressource.js) |
||||||||
options |
object | L'objet qui sera passé au display de la sésathèque Properties
|
||||||||
next |
function | appelé à la fin de l’affichage (tout a été mis dans le dom mais le rendu peut ne pas être terminé), avec une erreur ou rien |
(static) j3pAjouteBouton(container, clickListener, propsopt, optionsopt) → {HTMLButtonElement|HTMLInputElement}
- Description:
Ajoute un <button> dans container L’ancienne syntaxe
j3pAjouteBouton (container, id, className, value, onClick)est toujours acceptée Attention si clickListener plante l'erreur sera affichée à l'écran (mettre un try/catch dedans pour gérer soi-même l'erreur)
- Source:
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
container |
HTMLElement | string | l’élément ou son id |
|||||||||||||||||||||||||||||||
clickListener |
function | fonction qui sera appelée au clic (avec un this qui sera le HTMLElement bouton, event click en argument) |
|||||||||||||||||||||||||||||||
props |
Object |
<optional> |
Propriétés du <button> que l’on va créer (liste documentée ici non exhaustive https://developer.mozilla.org/fr/docs/Web/HTML/Element/button) Properties
|
||||||||||||||||||||||||||||||
options |
Object |
<optional> |
Properties
|
Returns:
le bouton
- Type
- HTMLButtonElement | HTMLInputElement
(static) j3pAjouteCaseCoche(conteneur, optionsopt) → {HTMLElement}
- Description:
Ajoute une case à cocher avec un comportement normal de checkbox Ex: ``` var input = j3pAjouteCaseCoche(elt, 'mon label') // pour désactiver l’input (correction par ex) j3pDesactive(input) // pour barrer le label j3pBarre(input.label) // pour changer la couleur du label (par ex) input.label.style.color = '#f00'
- Source:
Parameters:
| Name | Type | Attributes | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
conteneur |
HTMLElement | string | ||||||||||||||
options |
string | object |
<optional> |
Si fourni en string, idem options.label Properties
|
Returns:
L’élément <input type="checkbox"> inséré, avec une propriété label ajouté contenant l’élément label
- Type
- HTMLElement
(static) j3pAjouteDiv(conteneur, divIdopt, contentopt, propsopt) → {HTMLDivElement}
- Description:
Ajoute un div dans le conteneur.
Important : si props.style contient un positionnement ça va décaler top & left en fonction des zones présentes.
Sinon, il vaut mieux utiliser directement
j3pAddElt(conteneur, 'div', contenu, props)
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
conteneur |
HTMLElement | string | ||
divId |
string |
<optional> |
Passer '' (ou n’importe quelle valeur falsy) pour ne pas mettre d’id sur le div créé |
content |
string |
<optional> |
Contenu éventuel, html autorisé mais HTMLElement ou HTMLElement[] ou NodeList préférable |
props |
object |
<optional> |
Attributs éventuel du div (ajoutera l’unité px si style.top ou style.left sont des nombres sans unités) |
Returns:
- Type
- HTMLDivElement
(static) j3pAjouteZoneTexte(container, optionsopt) → {HTMLElement}
- Description:
Ajoute un input text dans un conteneur
- Source:
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
container |
HTMLElement | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
options |
object |
<optional> |
Properties
|
Returns:
L’input ajouté dans le DOM
- Type
- HTMLElement
(static) j3pArrondi(nb, maxDecimales) → {number}
- Description:
Retourne nb arrondi avec maxDecimales (0 non significatifs retirés, utiliser https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed pour les conserver) Pour rectifier les approximations de js sur les décimaux utiliser plutôt
fixArrondi(nb)(dans lib/utils/number)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb |
number | string | |
maxDecimales |
number | (si <0 on retournera l’arrondi de la partie entière avec une erreur en console) |
Returns:
- Type
- number
(static) j3pArrondi10(nb, puiss10) → {number}
- Description:
Arrondi un nombre à la puissance de 10 voulue
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb |
number | string | |
puiss10 |
number | Passer 2 pour arrondir à la centaine la plus proche et -2 pour le centième |
Returns:
- Type
- number
(static) j3pAutoSizeInput(inputElt)
- Description:
Fixe inputElt.style.width d’après ce qu’il contient
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
inputElt |
HTMLInputElement | string |
(static) j3pBarre(elt) → {SVGElement}
- Description:
Affiche un trait en diagonale sur l’élément Attention, le parent
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string | L’élement à barrer (ou son id) |
Returns:
Le svg mis dans le parent de l’élément
- Type
- SVGElement
(static) j3pBasculeAffichage()
- Description:
toggle display none sur les éléments passés en arguments
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
...elts |
HTMLElement | string |
(static) j3pBoule(svg) → {SVGCircleElement}
- Description:
Affiche une boule (effet ombrage 3D) dans le svg
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
svg |
SVGElement | ||
options.couleur |
string | peut contenir "rouge" ou "bleu" ou "vert" ou n’importe quel code en hexa (avec ou sans #) (mais "maroon", "red", etc... ne sont pas acceptés) |
|
options.cx |
number | ||
options.cy |
number | ||
options.diametre |
number | ||
options.id |
string |
<optional> |
Returns:
la "boule" ajoutée au svg
- Type
- SVGCircleElement
(static) j3pBoutonRadio(container, idopt, name, value, labelopt) → {HTMLElement}
- Description:
Ajoute un <input type="radio"> dans container, avec éventuellement un <label> autour Si id, alors ce sera comme avant 2020-02, un tag input avec id suivi d’un tag label (avec id='label'+id)
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
container |
HTMLElement | string | ||
id |
string |
<optional> |
|
name |
string | ||
value |
string | ||
label |
string |
<optional> |
Si non fourni on ajoutera pas de <label> autour de l'<input> |
Throws:
-
si le conteneur n’existe pas
- Type
- Error
Returns:
Le tag <input> (prendre parentNode pour avoir le label)
- Type
- HTMLElement
(static) j3pBoutonRadioChecked(radioName) → {Array.<number, string>}
- Description:
Retourne l’index et la valeur de l’input radio coché (pour les boutons radio de nom radioName)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
radioName |
string |
Returns:
un tableau [index, value] de l’élément coché (si aucun n’est coché index vaut -1 et value '')
- Type
- Array.<number, string>
(static) j3pC() → {Object}
- Description:
Retourne la position du conteneur j3p (Mepact)
- Source:
Returns:
- Type
- Object
(static) j3pChaine(ch, values) → {string}
- Description:
Remplace dans ch les £a par values.a et les £{toto} par values.toto j3pChaine("Quelle est la somme des entiers £a, £{truc}, £a et £foo ?",{a: 1, foo: 2, truc: 3}) retourne Quelle est la somme des entiers 1, 3, 1 et 2 ? Attention à utiliser la syntaxe avec {} si plusieurs variables on le même début (f et foo par ex, car le £f de £foo risque d'être substitué, l’ordre des substitutions n’étant pas garanti)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
ch |
string | |
values |
Object | Les clés doivent être l |
Returns:
- Type
- string
(static) j3pClone(obj, noDeepopt) → {Object}
- Description:
Clone un objet (il n’y aura pas les méthodes du prototype de l’objet source, mais s’il y a des propriétés qui sont des fonctions elles seront conservées, sans clonage sur leurs éventuelles propriétés, idem pour d’éventuelles fcts d’un tableau)
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
obj |
Object | |||
noDeep |
boolean |
<optional> |
false
|
passer true pour ne cloner que le premier niveau (shallow copy, pas de deep clone) |
Returns:
ou obj inchangé si c'était pas un object
- Type
- Object
(static) j3pCompareTab(tab1, tab2, strictopt) → {boolean}
- Description:
Renvoie true si les deux tableaux ont des éléments tous "égaux" ATTENTION, sans le 3e param à true c’est de la comparaison laxiste, j3pCompareTab(['', '1'], [0, 1]) renverra true
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
tab1 |
Array | |||
tab2 |
Array | |||
strict |
boolean |
<optional> |
false
|
passer true pour comparer avec une égalité stricte (préférable) |
Returns:
- Type
- boolean
(static) j3pCompareTab2(tab1, tab2, strictopt) → {Array.<boolean>}
- Description:
Retourne un tableau contenant le résulat des comparaisons des éléments des tableaux deux à deux
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
tab1 |
Array | |||
tab2 |
Array | |||
strict |
boolean |
<optional> |
false
|
passer true pour comparer avec une égalité stricte |
Returns:
Si les tableaux ne sont pas de même longueur, la longueur du résulat sera la plus petite des deux (donc la lecture des éléments suivants donnera undefined plutôt qu’un booléen)
- Type
- Array.<boolean>
(static) j3pComplete(defaultsValues, givenValues) → {Object}
- Description:
Retourne un nouvel objet avec les mêmes propriétés que defaultsValues, donc chacune vaut celle de givenValues si elle existe et est du même type que defaultsValues, sinon celle de defaultsValues Si c’est un tableau, fera la même chose sur chaque élément (donc dans le retour il y en aura autant que dans defaultsValues) Descend dans les sous-propriétés.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
defaultsValues |
Object | |
givenValues |
Object |
Returns:
- Type
- Object
(static) j3pCurseur(conteneur, options) → {HTMLElement}
- Description:
Affiche input + curseur, bouger le curseur modifie le nombre de l’input
- Source:
Parameters:
| Name | Type | Description | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
conteneur |
string | HTMLElement | (que l’on va vider pour le remplacer par nos inputs) |
|||||||||||||||||||||||||||||||||||
options |
object |
Properties
|
Returns:
L’input curseur (sa value est un number)
- Type
- HTMLElement
(static) j3pDetruit(…elt)
- Description:
Retire du dom les éléments html dont les ids sont passés en argument Si un id n’existe pas dans le dom, ne dit rien (et ne fait rien), pas besoin de tester l’existence avant
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
elt |
HTMLElement | string |
<repeatable> |
Un élément à détruire (ou son id), on peut passer autant d’arguments que l’on veut (pour détruire plusieurs elts en un seul appel) |
(static) j3pDimfenetre() → {Array.<Number>}
- Description:
Retourne un tableau [x, y] avec la taille de la fenêtre courante (utilise jQuery)
- Source:
Returns:
- Type
- Array.<Number>
(static) j3pDistance(pt1, pt2) → {number}
- Description:
Retourne la distance entre deux points. Accepte deux points, deux tableaux de 2 number ou 4 number
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
pt1 |
Point | |
pt2 |
Point |
Returns:
- Type
- number
(static) j3pDiv(conteneur, options) → {HTMLElement}
- Description:
Ajoute un div, 2 types d’appel possibles j3pDiv(conteneurId, options) j3pDiv(conteneurId, id, contenu, coord, style, bulle) Ex : j3pDiv(this.zones.MG, "exemple", "un texte", [100,435], j3p.styles.grand.enonce) revient à j3pDiv(this.zones.MG, {id: 'exemple', contenu: 'un texte', coord: [100,435], style: j3p.styles.grand.enonce})
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
conteneur |
HTMLElement | string | |
options |
j3pDivOptions |
Returns:
- Type
- HTMLElement
(static) j3pElement(id, shouldExistsopt) → {HTMLElement|null}
- Description:
Un getElementById amélioré, qui râle en console s’il ne trouve pas l’élément (ou s’il le trouve et qu’il devrait pas), mais aussi si y’en a plusieurs
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
id |
string | |||
shouldExists |
boolean | null |
<optional> |
true
|
Avec undefined|true il râle s’il ne trouve pas, avec false il râle s’il trouve, et avec tout le reste il reste muet (donc passer null pour le faire taire indépendamment du résultat) |
Returns:
- Type
- HTMLElement | null
(static) j3pEmpty(container)
- Description:
Vide container de tous ses éléments (comme pour j3pDetruit, inutile de tester l’existence avant, peut être appelé avec un id qui n’existe pas dans le dom, et dans ce cas ça ne fait rien)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
container |
HTMLElement | string |
(static) j3pEnsureHtmlElement(elt) → {HTMLElement}
- Description:
Vérifie que elt est un élément html (ou l’id d’un élément qui existe dans le dom). Peut donc être utilisé à la place de j3pElement (avec un try/catch autour) pour récupérer l’élément sans tester avant si c’est une string ou un élément
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string |
Throws:
-
si elt n’est pas un HTMLElement
- Type
- Error
Returns:
- Type
- HTMLElement
(static) j3pEntierBienEcrit(nb) → {string}
- Description:
Retourne le nombre en string avec l’espace en séparateur de milliers
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb |
number |
Returns:
- Type
- string
(static) j3pEnvironEgal(terme1, terme2, erreur) → {boolean}
- Description:
Retourne true si la différence entre terme1 et terme 2 est inférieure à erreur
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
terme1 |
number | |
terme2 |
number | |
erreur |
number |
Returns:
- Type
- boolean
(static) j3pEstPremier(num) → {boolean|undefined}
- Description:
fonction permettant de tester si un nb <10^6 est premier ou non Attention, ça renvoie false pour 1 et tous les nombres négatifs ou non entiers
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
num |
string | Le nombre à tester |
Returns:
true s’il est premier, undefined si > 10^6, false si < 2 ou non entier
- Type
- boolean | undefined
(static) j3pFindpos(elt) → {Object}
- Description:
Retourne le décalage par rapport au conteneur j3p (#Mepact)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string |
Returns:
- Type
- Object
(static) j3pFocus(elt)
- Description:
Donne le focus à l’élément (idem elt.focus(), sauf pour les input mathquill ou on fait du $(…).mathquill('focus')) La détection mq ou pas est plus fiable avec un HTMLElement (on regarde sa classe css) qu’avec l’id (on regarde si son id contient inputmq, donc ça ne fonctionne que pour les champs créés par j3pAffiche)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string |
(static) j3pFreezeElt(elt)
- Description:
Surveille un élément du DOM et le remet à l’identique s’il change. Fonctionne sur une branche du DOM, même si elle contient du svg par ex. ATTENTION, ça ne conserve pas des propriétés ajoutées en js sur elt ou ses enfants
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string | L’élément ou son id |
(static) j3pGetBornesIntervalle(intervalle, optionsopt) → {Array.<number>}
- Description:
Retourne les bornes entières d’un intervalle
- Source:
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
intervalle |
string | ||||||||||||||||||||||
options |
Object |
<optional> |
Properties
|
Returns:
les deux bornes (dans l’ordre de l’intervalle)
- Type
- Array.<number>
(static) j3pGetCssProp(elt, cssProp) → {string}
- Description:
Retourne la propriété cssProp calculée pour cet élément
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | |
cssProp |
string | en camelCase ou hyphen-case peu importe, cette fct fait la conversion |
Returns:
La valeur de cssProp calculée pour cet elt, chaîne vide si elle n’existe pas ou n’a jamais été définie et n’a pas de valeur par défaut
- Type
- string
(static) j3pGetDebouncedFunction(fn, optionsopt) → {function}
- Description:
Retourne une fonction qui exécutera fn à condition de ne pas avoir été appelé moins de minDelay ms plus tôt
- Source:
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fn |
function | ||||||||||||||||||||||
options |
Object |
<optional> |
Properties
|
Returns:
- Type
- function
(static) j3pGetMousePositionInElt(event, eltopt) → {Object}
- Description:
Retourne les coordonnées de la souris par rapport à un élément du dom (objet {x,y})
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
event |
MouseEvent | ||
elt |
HTMLElement |
<optional> |
si non fourni on prendra la target de l’event (donc ça retournera les coordonnées par rapport à l’élément sur lequel on a cliqué) |
Returns:
- Type
- Object
(static) j3pGetNewId(prefixeopt, preserveopt) → {string}
- Description:
Retourne un id inutilisé dans le dom (sous la forme prefixe + nb)
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
prefixe |
string |
<optional> |
id
|
|
preserve |
boolean |
<optional> |
Passer true pour que prefixe soit renvoyé tel quel si l’id est libre (et sinon les suffixes demarreront à 2) |
Returns:
- Type
- string
(static) j3pGetParamsDroite(p1, p2) → {Object}
- Description:
Retourne les paramètres a,b,c de l’équation de la droite (ax + by + c = 0) passant par les deux points
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
p1 |
Object | |
p2 |
Object |
Returns:
- Type
- Object
(static) j3pGetPos(elt) → {Object|Object}
- Description:
Retourne la position absolue du coin supérieur gauche de elt (donc par rapport au document et pas .j3pContainer), que l’élément soit positionné ou pas. Attention en cas d’élément inline multiligne, c’est le coin supérieur gauche du début de l’élément, pas du rectangle englobant. Utiliser plutôt directement
const { x, y } = elt.getBoundingClientRect()
- Source:
- Deprecated:
- Yes
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string |
Returns:
- Type
- Object | Object
(static) j3pGetPosition(elt) → {Object}
- Description:
Retourne la position de l’élément (utilise jQuery(elt).offset() ou si c’est pas dispo ajouter les $.position() en remontant tous les parents Utiliser plutôt
const { x, y } = elt.getBoundingClientRect()
- Source:
- Deprecated:
- Yes
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement |
Returns:
- Type
- Object
(static) j3pGetPositionZone(elt, ref) → {Array.<number>}
- Description:
Retourne le décalage de elt par rapport à ref (tableau [x, y])
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | |
ref |
HTMLElement | Node |
Returns:
- Type
- Array.<number>
(static) j3pGetRandomBool() → {boolean}
- Description:
Un pile ou face qui retourne un booléen
- Source:
Returns:
- Type
- boolean
(static) j3pGetRandomElt(tab) → {*}
- Description:
Retourne un élément pris au hasard dans tab
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
tab |
Array |
Returns:
Un des éléments
- Type
- *
(static) j3pGetRandomElts(elts, nb) → {Array}
- Description:
Retourne un tableau de nb éléments pris parmi elts
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elts |
Array | |
nb |
number |
Returns:
Un tableau de nb éléments pris aléatoirement dans elts
- Type
- Array
(static) j3pGetRandomFixed(nb1, nb2, nbDecimales) → {string}
- Description:
Retourne un nb pris au hasard dans [nb1, nb2] (en string, avec 0 non significatifs ajoutés) (utilise j3pGetRandomFloat qui exclu nb2, mais avec l’arrondi on peut récupérer nb2)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb1 |
number | string | |
nb2 |
number | string | |
nbDecimales |
number | string |
Returns:
Renverra 'NaN' si un des arguments n’est pas un nombre ou nbDecimales < 0 ou nbDecimales non entier
- Type
- string
(static) j3pGetRandomFloat(nb1, nb2) → {number}
- Description:
Retourne un nb pris au hasard dans [nb1, nb2[
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb1 |
number | string | |
nb2 |
number | string |
Returns:
- Type
- number
(static) j3pGetRandomInt(nb1, nb2) → {number}
- Description:
Retourne un entier pris au hasard entre les deux nombres (compris) Accepte une syntaxe (déconseillée) avec un seul argument string de la forme [n;m] où n & m sont entiers, retournera 0 si la forme n’est pas respectée
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb1 |
number | string | |
nb2 |
number | string |
Returns:
- Type
- number
(static) j3pGetRandomLetters(nb) → {Array.<string>}
- Description:
Retourne un tableau de nb lettres majuscules (pris dans A-Z)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb |
number |
Returns:
- Type
- Array.<string>
(static) j3pGetRessourceBibli(id, sesathequeBaseIdopt, next)
- Description:
Récupère une ressource sur la bibliothèque et la passe à next
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
id |
string | sous la forme em/42 par ex |
|
sesathequeBaseId |
string |
<optional> |
L’id de la sésatheque |
next |
function | sera appelé avec (error, ressource) |
(static) j3pGetUrlParams(nameopt) → {string|object}
- Description:
Retourne la valeurs du paramètre d’url demandé s’il existe, ou tous si pas précisé (décodés)
Le caractère "+" est conservé (alors qu’il devrait être interprété comme espace)
Attention, les tableaux ne sont pas interprétés, avec ?foo[bar][2]=b%20az&… dans l’url j3pGetUrlParams("foo[bar][2]") retourne "b az" j3pGetUrlParams("foo[bar]") retourne undefined
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
name |
string |
<optional> |
Le paramètre voulu (sinon tous) |
Returns:
La valeur du paramètre (undefined s’il n’existait pas, chaine vide s’il existe sans valeur), ou objet avec tous les paramètres (les valeurs de chaque propriété sont toutes des strings)
- Type
- string | object
(static) j3pImage(options) → {HTMLElement}
- Description:
Ajoute une image (dans un div qu’on crée) et la retourne
- Source:
Parameters:
| Name | Type | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
Properties
|
Throws:
-
si le conteneur n’existe pas
- Type
- Error
Returns:
Le tag img du dom
- Type
- HTMLElement
(static) j3pImporteAnnexe(path) → {Promise.<(string|Object)>}
- Description:
Retourne le contenu d’un fichier html|js|json|txt|xml Pour js ça retourne tous les exports (sauf si y’a un seul export par défaut, alors retourné). Pour json ça retourne l’objet, et pour les autres le contenu en string. Attention, async, n’oubliez pas le catch !
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
path |
string | chemin relatif sans le slash de début (dans sectionsAnnexes pour les js qui sont toujours dossier/fichier.ext, docroot/annexes pour le reste) |
Returns:
Object pour js|json, string pour les autres
- Type
- Promise.<(string|Object)>
(static) j3pIntersection(d1, d2) → {Array.<number>|undefined}
- Description:
Calcule le point d’intersection de deux droites
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
d1 |
Array.<number> | coefs abc de la 1re droite |
d2 |
Array.<number> | coefs abc de la 2e droite |
Returns:
Les coordonnées du point (undefined si d1//d2)
- Type
- Array.<number> | undefined
(static) j3pIntersectionDroites(d1, d2) → {Point}
- Description:
Retourne le point d’intersection de deux droites (undefined si y’en a pas)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
d1 |
Droite | |
d2 |
Droite |
Returns:
- Type
- Point
(static) j3pIsHtmlElement(elt, warnIfNotEltopt) → {boolean}
- Description:
Retourne true si elt est un HTMLElement (ou HTMLDivElement ou HTML…Element)
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
elt |
* | |||
warnIfNotElt |
boolean |
<optional> |
false
|
Passer true pour que ça ajoute une erreur en console si elt n’était pas un HTMLElement |
Returns:
- Type
- boolean
(static) j3pIsSvgElement(elt, warnIfNotEltopt) → {boolean}
- Description:
Retourne true si elt est un SVGElement (ou SVGLineElement ou SVG…Element)
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
elt |
* | |||
warnIfNotElt |
boolean |
<optional> |
false
|
Passer true pour que ça ajoute une erreur en console si elt n’était pas un SVGElement |
Returns:
- Type
- boolean
(static) j3pMathquillXcas(chaine) → {string}
- Description:
Utiliser mqNormalise à la place (plus fiable et plus performante)
- Source:
- Deprecated:
- Yes
Parameters:
| Name | Type | Description |
|---|---|---|
chaine |
string | number |
Returns:
- Type
- string
(static) j3pMeilleurArrondi(nb) → {number}
- Description:
Retourne nb arrondi pour garder 13 chiffres significatifs ? Description à confirmer ! (phrase ci-dessous incompréhensible) Sert surtout à gérer les décimaux avec les pbs d’arrondis de js, elle laisse la valeur décimale telle que calculée
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nb |
number |
Returns:
- Type
- number
(static) j3pModale(options) → {HTMLElement}
- Description:
Affiche une modale
- Source:
Parameters:
| Name | Type | Description | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Returns:
le div de cette modale (#modale)
- Type
- HTMLElement
(static) j3pMonome(rang, puissance, coef, nomVaropt) → {string}
- Description:
Retourne la string du monome correctement formatée (séparateur virgule) j3pMonome(1, 2, 3, 'y') => 3y^2 j3pMonome(2, 3, 4) => +4x^3
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
rang |
number | Si 1 alors le signe + éventuel sera omis (sinon laissé) |
||
puissance |
number | |||
coef |
number | string | Nombre entier ou décimal (utiliser j3pLatexMonome sinon) |
||
nomVar |
string |
<optional> |
x
|
Returns:
- Type
- string
(static) j3pNombre(ch) → {number}
- Description:
Retourne la string sous forme de number, en remplaçant la virgule éventuelle Retourne NaN en cas de param incorrect (pas un number ni une string numérique) ou string vide Attention, une string vide retourne 0
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
ch |
string | number |
Returns:
- Type
- number
(static) j3pNombreBienEcrit(nb, optionsopt) → {string}
- Description:
Utilisez plutôt formatNumber (dans lib/utils/number) qui est plus strict (et gère mieux la notation scientifique)
Retourne le nombre formaté, avec une espace tous les 3 chiffres, séparateur virgule. Appelé avec autre chose qu’une string|number ça retourne '' et râle en console (sauf avec strict où ça plante) j3pNombreBienEcrit('') retourne ''
- Source:
- Deprecated:
- Yes
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nb |
string | number | ||||||||||||||||||
options |
Object |
<optional> |
Properties
|
Returns:
- Type
- string
(static) j3pNormeVecteur(x, y) → {number}
- Description:
Retourne la norme du vecteur (x, y)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
x |
number | |
y |
number |
Returns:
- Type
- number
(static) j3pPGCD(x, y, optionsopt) → {number|undefined}
- Description:
Retourne le pgcd de deux nombres, avec pas mal d’options pour gérer les cas sans pgcd (utilisez plutôt
module:lib/utils/number.pgcdsi vous voulez un vrai pgcd)
- Source:
Parameters:
| Name | Type | Attributes | Description | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x |
number | |||||||||||||||||||||||||||
y |
number | |||||||||||||||||||||||||||
options |
Object |
<optional> |
Properties
|
Returns:
undefined si le calcul du PGCD n’est pas possible (nombres négatif sans avoir passé negativesAllowed, ou un 0 sans avoir précisé returnOtherIfZero ou valueIfZero)
- Type
- number | undefined
(static) j3pPaletteMathquill(container, input, optionsopt) → {HTMLElement}
- Description:
Affiche La palette d’outils mathquill
- Source:
Parameters:
| Name | Type | Attributes | Description | |||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
container |
HTMLElement | string | |||||||||||||||||||||||||||||||||||||||
input |
HTMLElement | string | Id de l’input dans lequel les clics sur les boutons doivent écrire |
||||||||||||||||||||||||||||||||||||||
options |
object |
<optional> |
Properties
|
Throws:
-
si le conteneur n’existe pas
- Type
- Error
Returns:
Le div créé
- Type
- HTMLElement
(static) j3pParseArray(tabInString) → {Array.<(string|number)>}
- Description:
Parse une string pour récupérer des éléments de tableau Chaque élément sera converti en nombre si c’est un nombre, sinon ses éventuelles espaces de début et fin seront enlevées
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
tabInString |
string | La string décrivant un tableau |
Returns:
Toujours un tableau, vide si tabInString n’était pas de la forme '[…]'
- Type
- Array.<(string|number)>
(static) j3pParseFrac(frac) → {Object}
- Description:
Retourne numérateur, dénominateur et valeur d’une fraction (lance une erreur si c'était pas une fraction valide)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
frac |
string |
Returns:
- Type
- Object
(static) j3pParseInter(intervalle) → {Object}
- Description:
Retourne les bornes d’un intervalle
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
intervalle |
string | sous la forme [xxx;yyy] |
Returns:
- Type
- Object
(static) j3pPolynome(coefs, nomVaropt) → {string}
- Description:
Retourne le polynome en string (termes formatés par j3pMonome), par exemple 5x^{12}+4x^2-3x+5 pour le tableau [5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -3, 5]
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
coefs |
Array.<number> | |||
nomVar |
string |
<optional> |
x
|
Throws:
-
Si coefs n’est pas un tableau de number
- Type
- Error
Returns:
- Type
- string
(static) j3pRandom(ch) → {string|number|*}
- Source:
- Deprecated:
- Utiliser plutôt les fonctions
j3pGetRandomBool,j3pGetRandomInt,j3pGetRandomFixedouj3pGetRandomFloat
- Utiliser plutôt les fonctions
Parameters:
| Name | Type | Description |
|---|---|---|
ch |
string | Array.<number> | L’intervalle sous la forme [1;3] ou {1;3;8} |
Returns:
- Type
- string | number | *
(static) j3pRandomTab(tab1, tab2)
- Description:
Retourne une valeur choisie alétoirement dans tab2 tab1[i] est la probabilité d’obtenir aléatoirement tab2[i]
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
tab1 |
tableau des choix aléatoires proposés |
|
tab2 |
tableau de flottants compris entre 0 et 1 dont la somme vaut 1 (de la même longueur que tab1). C’est la proba de tomber sur la valeur associée de tab1 |
(static) j3pRandomdec(ch) → {number}
- Description:
Retourne un nb décimal dans l’intervalle demandé
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
ch |
string | par ex '[2.5;9],3' pour récupérer un nombre avec trois décimales entre 2,5 et 9 |
Returns:
- Type
- number
(static) j3pRemoveClass(selector, className, parentopt) → {boolean}
- Description:
Retire une classe css à un ou des éléments désignés par selector Pour la retirer à un elt déjà référencé, utiliser elt.classList.remove(className)
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
selector |
string | sélecteur css (préfixe #Mepact toujours ajouté) |
||
className |
string | |||
parent |
HTMLElement |
<optional> |
document
|
Si fourni on se limite aux enfants de cet élément |
Returns:
false si y’a eu un pb, true sinon
- Type
- boolean
(static) j3pRemplace(ch, position1, position2, souschaine) → {string}
- Description:
Insère souschaine dans ch à la place de ce qu’il y avait entre position1 et position2 (inclus) j3pRemplace('portnawak', 2, 5, 'FOO') => poFOOwak
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
ch |
string | |
position1 |
number | |
position2 |
number | |
souschaine |
string |
Returns:
- Type
- string
(static) j3pRemplacePoint()
- Description:
Listener (keyup ou change) à mettre sur un input pour remplacer les . par des , à la volée Il était souvent mis avec
j3pElement("afficheReponseinput1").setAttribute("onkeyup","j3pRemplacePoint(this)")mais ça passe pas dans sesaparcours (où les fcts ne sont plus globales) Il faut le mettre avecelt.addEventListener('input', j3pRemplacePoint)(car pas sûr que ça fonctionne avec keyup sur tablettes, et keyup match pas un ctrl+c ou un clic milieu)
- Source:
(static) j3pRestriction(input, restriction)
- Description:
Restreint la saisie d’un input à une plage de caractères précisé par une RegExp Vous pouvez utiliser les regex prédéfinies j3pRestriction.(minuscules|majuscules|lettres|lettresAccents|alpha|entier|decimaux)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
input |
HTMLElement | string | |
restriction |
string | RegExp | Si string, on construira une RegExp en englobant la string avec []. |
(static) j3pSetProps(elt, props)
- Description:
Affecte les props à l’élément (en gérant les spécificités des HTMLElement, avec qq vérifs Les valeurs undefined sont ignorées, les valeurs null suppriment la propriété.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
||
props |
(static) j3pShowError(error, optionsopt)
- Description:
Affiche un message d’erreur à l’écran (dans le conteneur .j3pErrors mis par le loader, en attendant d’en avoir un par instance) Attention, à priori c’est dans MepMG, donc si un autre bout de code le vide l’affichage de l’erreur va disparaître au passage Cliquer sur l’erreur la fait disparaître (ça peut être au dessus de l’énoncé)
- Source:
Parameters:
| Name | Type | Attributes | Description | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error |
Error | string | |||||||||||||||||||||||||||
options |
Object |
<optional> |
Properties
|
(static) j3pShuffle(tab) → {Array}
- Description:
Retourne le tableau tab mélangé (sans modifier tab, mais les éléments du tableau retourné sont des références aux éléments de tab, modifier l’un modifiera l’autre si ce sont des objets)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
tab |
Array |
Returns:
Un tableau avec les même éléments mélangés
- Type
- Array
(static) j3pShuffleMulti(…tabs) → {Array.<Array.<*>>}
- Description:
Retourne un tableau avec tous les tableaux passés en arguments (autant qu’on veut) dont tous les éléments auront été mélangés de la même manière j3pShuffleMulti([1, 2, 3], ['a', 'b', 'c'], ['un', 'deux', 'trois']) retournera par ex [[3, 0, 1], ['c', 'a', 'b'], ['trois', 'un', 'deux']]
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
tabs |
Array.<*> |
<repeatable> |
Returns:
- Type
- Array.<Array.<*>>
(static) j3pSimplifieQuotient(num, den) → {Object}
- Description:
Retourne numérateur et dénominateur en simplifiant la fraction (le dénominateur sera toujours un entier positif, le numérateur toujours entier)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
num |
number | string | |
den |
number | string |
Returns:
- Type
- Object
(static) j3pSpan(conteneur, propsopt) → {HTMLElement|HTMLSpanElement}
- Description:
Ajoute un span dans conteneur et le retourne (wrapper de j3pAddElt qui impose span + position relative + left 0)
- Source:
Parameters:
| Name | Type | Attributes | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
conteneur |
HTMLElement | string | ||||||||||||||
props |
Object |
<optional> |
Propriété à coller sur l’élément (passé à j3pAddElt, sauf propriété contenu) Properties
|
Throws:
-
si le conteneur n’existe pas
- Type
- Error
Returns:
- Type
- HTMLElement | HTMLSpanElement
(static) j3pStyle(elt, styleProps)
- Description:
Applique toutes les clés / valeurs de styleProps à l’attribut style de l’élément (idem setStyle de lib/utils/css mais sans planter si elt n’est pas un élément, ici ça râle seulement)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string | |
styleProps |
object |
(static) j3pValeurde(elt) → {string}
- Description:
Si id contient inputmq on retourne la string LaTeX de l’input, sinon l’attribut value (ou une chaine vide s’il n’existe pas) Renvoie toujours une string, même si id n’existe pas
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
elt |
HTMLElement | string | L’élément ou son id |
Returns:
- Type
- string
(static) j3pVirgule(x, maxDecimalesopt) → {string}
- Description:
Retourne le nombre en string avec séparateur virgule. À utiliser avant affichage pour éviter les pb d’arrondi style 1.99999999999999 (en précisant un maxDecimales entre 0 et 12)
- Source:
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
x |
number | string | ||
maxDecimales |
number |
<optional> |
si précisé, on arrondi à ce max de décimale (sans les 0 non significatifs) |
Returns:
- Type
- string
Type Definitions
Droite
- Source:
Properties:
| Name | Type | Description |
|---|---|---|
a |
number | |
b |
number | |
c |
number |
Point
- Source:
Properties:
| Name | Type | Description |
|---|---|---|
x |
number | |
y |
number |
j3pDivOptions
- Source:
Properties:
| Name | Type | Attributes | Description |
|---|---|---|---|
id |
string |
<optional> |
Id du div à créer |
contenu |
string |
<optional> |
Le contenu éventuel du div, html autorisé, attention à passer la propriété param si y’a du £ dans ce contenu |
coord |
Array.<number> |
<optional> |
tableau [x, y] pour positionner le div |
style |
object | string |
<optional> |
préférer la notation object, plus lisible |
param |
object |
<optional> |
La liste des chaînes de remplacement (dans contenu, les £prop£ seront remplacés par param[prop]) |
j3pObjetBulle
- Source:
Properties:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
contenu |
string |
<optional> |
si présent sera préfixé par "j3pBULLE" |
|
texte |
string |
<optional> |
doit être présent si contenu est absent |
|
longueur |
number |
<optional> |
200
|
en pixels |