legacy/core/functions

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
Name Type Attributes Description
replace boolean <optional>

passer true pour remplacer (sinon ajoute)

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 style: { fontWeight: 'bold'} cf https://developer.mozilla.org/fr/docs/Web/CSS/CSS_Properties_Reference Les propriétés top|left|right|bottom peuvent être passées sans unité, px sera alors ajouté

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
Name Type Attributes Description
sesathequeBaseId string <optional>
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
Name Type Attributes Description
id string <optional>

id du bouton à créer

value string <optional>

Texte du bouton (sinon utilisez l’élément retourné pour faire ensuite du j3pAddElt dedans)

className string <optional>

classe css

style Object <optional>

des styles éventuels

options Object <optional>
Properties
Name Type Attributes Default Description
message string <optional>
isButton boolean <optional>
false

Passer true pour créer un <button> plutôt qu’un <input type="button"> (indispensable si vous voulez une image ou d’autres éléments html dedans)

minDelay number <optional>
0

Un délai pour interdire deux appels de listener dans cet intervalle (en ms). Passer 0 pour désactiver ce debounce, et -1 pour être sûr que le listener ne sera appelé qu’une seule fois

debounceMessage string <optional>
''

Le message a afficher si on re-clique sur le bouton avant minDelay ms

vanishAfter number <optional>
0

Une durée (en s) d'affichage de l'éventuel debounceMessage

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
Name Type Attributes Description
label string <optional>

Permet d’insérer le label qui devient cliquable (comme la case). On peut mettre du mathquill dans le label (appel de j3pAffiche dans ce cas)

id string <optional>

Permet de donner un id à la zone (c’est à faire quand on a du mathquill, pas besoin autrement)

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
Name Type Attributes Description
id string <optional>

id à mettre sur l’input créé

texte string <optional>

texte pour initialiser l’input

style object <optional>
restrict RegExp | string <optional>

Si fourni on ajoutera un listener sur keypress pour limiter la saisie possible à cette plage de caractères

taille number <optional>

prop size de l’input

maxchars number <optional>

nb de char max (prop maxLength), par défaut sera mis à 20 (ou la taille du texte si > 20)

tailletexte number <optional>

On ajoutera px pour le mettre dans style.fontSize

couleur string <optional>

sera mis dans style.color

fond string <optional>

sera mis dans style.backgroundColor

police string <optional>

sera mis dans style.fontFamily

width number <optional>

On ajoutera px pour le mettre dans style.width

top number <optional>

On ajoutera px pour le mettre dans style.top (en ajoutant style.position = 'absolute' si ça n’a pas été précisé autrement via options.style.position)

left number <optional>

On ajoutera px pour le mettre dans style.top (en ajoutant style.position = 'absolute' si ça n’a pas été précisé autrement via options.style.position)

tabindex string <optional>

Si fourni sera appliqué (comme attribut) à l’input

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
Name Type Attributes Default Description
label string

Le texte à afficher à gauche de l’input texte

min number

valeur minimale du curseur

max number

valeur max du curseur

valeur number

valeur initiale du curseur

nbDecimales number <optional>
0

nb de décimales pour arrondir le nombre dans l’input text

width number <optional>
200

largeur du curseur (et du div englobant les inputs)

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
Name Type Attributes Description
sameOrder Object <optional>
strict Object <optional>

passer true pour throw en cas de pb d’ordre

onlyPositives Object <optional>

passer true pour throw en cas de nb négatifs

alsoFloat Object <optional>

passer true pour autoriser les décimaux

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
Name Type Attributes Default Description
minDelay number <optional>
1000

en ms, passer -1 pour que fn ne soit appelée qu’une seule fois

message string <optional>
''

Le message à afficher en cas de clic trop rapide après le précédent

vanishAfter number <optional>
0

Durée en s avant d'éffacer le message en cas de clic trop rapide

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
Name Type Attributes Description
conteneur HTMLElement | string

conteneur ou son id

id string <optional>

Id du div à créer dans le conteneur

src string

url de l’image

larg number <optional>

largeur à fixer à l’image

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
Name Type Attributes Default Description
titre string
contenu string
divparent HTMLElement | string <optional>
body
onClose function <optional>
closeOnMask boolean <optional>
false

passer true pour fermer la modale avec un clic sur le masque (en plus de la croix)

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
Name Type Attributes Description
garderZeroNonSignificatif boolean <optional>
maxDecimales number <optional>

entre 0 et 12, ignoré sinon

strict boolean <optional>

Passer true pour planter plutôt que de râler en console en cas de nombre invalide

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.pgcd si vous voulez un vrai pgcd)

Source:
Parameters:
Name Type Attributes Description
x number
y number
options Object <optional>
Properties
Name Type Attributes Default Description
quiet boolean <optional>
false

Passer true pour ne pas râler en console si le PGCD n’est pas possible

returnOtherIfZero boolean <optional>

passer true pour retourner l’autre si l’un des deux est nul

valueIfZero number <optional>

valeur à retourner si l’un des deux est nul

negativesAllowed number <optional>

passer true pour prendre les valeurs absolues avant de calculer le pgcd

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
Name Type Attributes Default Description
liste Array.<string> <optional>

La liste des boutons voulus (cf source de j3pPaletteMathquill pour avoir la liste des possibles)

id string <optional>
MepBarreBoutonsMQ

Id du div créé. S’il existait déjà on le détruit avant de recréer une nouvelle palette (ça arrive souvent si la même palette change d’input de destination)

position object <optional>

OBSOLETE, passer plutôt par le style pour gérer le positionnement. Si fourni ça impose style.position = 'absolute' comme avant

Properties
Name Type Attributes Description
left number <optional>
top number <optional>
style object <optional>
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, j3pGetRandomFixed ou j3pGetRandomFloat
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 avec elt.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
Name Type Attributes Default Description
message string <optional>

Si fourni, c’est ce qui sera affiché à l’écran (error.message sinon)

mustNotify boolean <optional>
false

Si true l’erreur sera aussi notifiée à bugsnag

notifyData Object <optional>

Si c’est un objet on l’enverra dans la notif bugsnag (remplace alors mustNotify=true)

vanishAfter number <optional>

Pour que le message disparaisse tout seul, passer ici un délai en secondes (sinon il faut cliquer sur la croix)

(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
Name Type Attributes Description
contenu string | HTMLElement | NodeList <optional>

Du contenu à mettre dans le span

id string <optional>

un id éventuel pour ce span

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