File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/deprecatedExercice-eW-6RsRH.js.map
{"version":3,"file":"deprecatedExercice-eW-6RsRH.js","sources":["../../src/exercices/deprecatedExercice.js"],"sourcesContent":["/**\n *\n * Classe parente de tous les exercices (à remplacer par Exercice.ts à partir de janvier 2024)\n * @deprecated\n * @author Rémi Angot\n */\nexport default function Exercice () {\n // ////////////////////////////////////////////////\n // Autour de l'exercice\n // ////////////////////////////////////////////////\n this.titre = '' // Chaîne de caractère sans point à la fin. C'est le titre de l'exercice qui sera affiché avec la référence dans le générateur d'exercices.\n this.boutonAide = false // Bouton en haut à droite des questions permettant d'afficher un pdf, texte, image, vidéo, contenu d'un autre site en \"pop-up\" via les fonctions modalXXXXXXX de outils.js.\n // Ci-dessous des exemples d'utilisation du this.boutonAide.\n // Noter que pour récupérer le numeroExercice dont il est question, au lieu d'écrire \"this.nouvelleVersion = function () {\" comme d'habitude, on écrit \"this.nouvelleVersion = function (numeroExercice) {\".\n // this.boutonAide = modalImage(numeroExercice, urlImage, titre, labelBouton = 'Illustration', icone = 'image')\n // this.boutonAide = modalPdf(numeroExercice, urlPdf, titre='Aide', labelBouton = 'Aide - PDF', icone = 'file pdf')\n // this.boutonAide = modalTexteCourt(numeroExercice, texte, labelBouton = 'Aide', icone = 'info circle')\n // this.boutonAide = modalTexteLong(numeroExercice, titre, texte, labelBouton = 'Aide', icone = 'info circle')\n // this.boutonAide = modalUrl(numeroExercice, url, labelBouton = 'Aide', icone) pour afficher le contenu de url dans un iframe\n // this.boutonAide = modalVideo(numeroExercice, urlVideo, titre, labelBouton, icone)\n // this.boutonAide = modalYoutube(numeroExercice, idYoutube, titre, labelBouton = 'Aide - Vidéo', icone = 'youtube')\n\n // ///////////////////////////////////////////////\n // Construction de l'exercice\n // ///////////////////////////////////////////////\n this.consigne = '' // Chaîne de caractère qui apparaît en gras au-dessus des questions de préférence à l'infinitif et AVEC point à la fin.\n this.consigneCorrection = '' // Chaîne de caractère en général vide qui apparaît au-dessus des corrections.\n this.introduction = '' // Texte qui n'est pas forcément en gras et qui apparaît entre la consigne et les questions.\n this.listeQuestions = [] // Liste de chaînes de caractères avec chacune correspondant à une question. Chaque question est définie par la méthode this.nouvelleVersion puis `listeDeQuestionToContenu(this)` mettra en forme `this.contenu` et `this.contenuCorrection` suivant `context` (sortie HTML ?...)\n this.listeCorrections = [] // Idem avec la correction.\n this.listeCanEnonces = []\n this.listeCanReponsesACompleter = []\n this.contenu = '' // Chaîne de caractères avec tout l'énoncé de l'exercice construit à partir de `this.listeQuestions` suivant le `context`\n this.contenuCorrection = '' // Idem avec la correction\n this.autoCorrection = [] // Liste des objets par question pour correction interactive || export AMC.\n this.tableauSolutionsDuQcm = [] // Pour sauvegarder les solutions des QCM.\n\n // ///////////////////////////////////////////////\n // Mise en forme de l'exercice\n // ///////////////////////////////////////////////\n this.spacing = 1 // Interligne des questions\n this.spacingCorr = 1 // Interligne des réponses\n\n // ////////////////////////////////////////////\n // Gestion de la sortie LateX\n // ////////////////////////////////////////////\n this.pasDeVersionLatex = false // booléen qui indique qu'une sortie LateX est impossible.\n this.listePackages = [] // string ou liste de string avec le nom des packages spécifiques à ajouter dans le préambule.\n this.consigneModifiable = true // booléen pour déterminer si la consigne est modifiable en ligne dans la sortie LaTeX.\n this.nbQuestionsModifiable = true // booléen pour déterminer si le nombre de questions est modifiable en ligne.\n this.nbCols = 1 // Nombre de colonnes pour la sortie LaTeX des questions (environnement multicols).\n this.nbColsCorr = 1 // Nombre de colonnes pour la sortie LaTeX des réponses (environnement multicols).\n this.nbColsModifiable = true // booléen pour déterminer si le nombre de colonnes est modifiable en ligne dans la sortie LaTeX.\n this.nbColsCorrModifiable = true // booléen pour déterminer si le nombre de colonnes de la correction est modifiable en ligne dans la sortie LaTeX.\n this.spacingModifiable = true // booléen pour déterminer si l'espacement est modifiable en ligne dans la sortie LaTeX.\n this.spacingCorrModifiable = true // booléen pour déterminer si l'espacement est modifiable en ligne dans la sortie LaTeX.\n // this.vspace = -1 //Ajoute un \\vspace{-1cm} avant l'énoncé ce qui peut être pratique pour des exercices avec des figures.\n this.listeAvecNumerotation = true // booléen pour eterminer si la liste des questions/corrections dans un exercice comporter une numérotation ou pas.\n\n // ////////////////////////////////////////////\n // Gestion de la sortie autre que LateX\n // ////////////////////////////////////////////\n this.beamer = false // booléen pour savoir si la sortie devra être un diaporama beamer\n this.tailleDiaporama = 1 // Facteur par lequel multiplier la police pour la vue 'diap'\n\n // ////////////////////////////////////////////\n // Paramètres\n // ////////////////////////////////////////////\n this.nbQuestions = 10 // Nombre de questions par défaut (récupéré dans l'url avec le paramètre `,n=`)\n this.pointsParQuestions = 1 // Pour définir la note par défaut d'un exercice dans sa sortie Moodle\n this.correctionDetailleeDisponible = false // booléen qui indique si une correction détaillée est disponible.\n this.correctionDetaillee = true // booléen indiquant si la correction détaillée doit être affiché par défaut (récupéré dans l'url avec le paramètre `,cd=`).\n this.correctionIsCachee = false // pour cacher une correction\n this.video = '' // Chaine de caractère pour un complément numérique (id Youtube, url, code iframe...).\n // Interactivité\n this.interactif = false // Exercice sans saisie utilisateur par défaut.\n this.interactifObligatoire = false // Certains exercices sont uniquement des QCM et n'ont pas de version non interactive.\n // Ajoute un formulaire de paramétrage par l'utilisateur récupéré via this.sup ou dans le paramètre d'url ',s='\n this.besoinFormulaireNumerique = false // Sinon this.besoinFormulaireNumerique = [texte, max, tooltip facultatif]\n this.besoinFormulaireTexte = false // Sinon this.besoinFormulaireTexte = [texte, tooltip]\n this.besoinFormulaireCaseACocher = false // Sinon this.besoinFormulaireCaseACocher = [texte]\n // Ajoute un formulaire de paramétrage par l'utilisateur récupéré via this.sup2 ou dans le paramètre d'url ',s2='\n this.besoinFormulaire2Numerique = false // Sinon this.besoinFormulaire2Numerique = [texte, max, tooltip facultatif]\n this.besoinFormulaire2Texte = false // Sinon this.besoinFormulaire2Texte = [texte, tooltip]\n this.besoinFormulaire2CaseACocher = false // Sinon this.besoinFormulaire2CaseACocher = [texte]\n // Ajoute un formulaire de paramétrage par l'utilisateur récupéré via this.sup3 ou dans le paramètre d'url ',s3='\n this.besoinFormulaire3Numerique = false // Sinon this.besoinFormulaire3Numerique = [texte, max, tooltip facultatif]\n this.besoinFormulaire3Texte = false // Sinon this.besoinFormulaire3Texte = [texte, tooltip]\n this.besoinFormulaire3CaseACocher = false // Sinon this.besoinFormulaire3CaseACocher = [texte]\n // Ajoute un formulaire de paramétrage par l'utilisateur récupéré via this.sup4 ou dans le paramètre d'url ',s4='\n this.besoinFormulaire4Numerique = false // Sinon this.besoinFormulaire4Numerique = [texte, max, tooltip facultatif]\n this.besoinFormulaire4Texte = false // Sinon this.besoinFormulaire4Texte = [texte, tooltip]\n this.besoinFormulaire4CaseACocher = false // Sinon this.besoinFormulaire4CaseACocher = [texte]\n\n // ///////////////////////////////////////////////\n // Exercice avec des dépendances particulières\n // ///////////////////////////////////////////////\n // this.typeExercice = 'MG32' // Pour charger MathGraph32.\n this.mg32Editable = false // Les figures MG32 ne sont pas interactives par défaut.\n // this.dimensionsDivMg32 = [500, 450] // Dimensions du SVG créé par MathGraph32.\n\n // this.typeExercice = 'Scratch' // Pour charger Scratchblocks.\n // this.typeExercice = 'IEP' // Pour charger InstrumEnPoche.\n // this.typeExercice = 'dnb' // Ce n’est pas un exercice aléatoire il est traité différemment. Les exercices DNB sont des images pour la sortie Html et du code LaTeX statique pour la sortie latex.\n // this.typeExercice = 'xcas' // Pour charger le JavaScript de XCas qui provient de https://www-fourier.ujf-grenoble.fr/~parisse/giac_fr.html\n // this.typeExercice = 'simple' // Pour les exercices plus simples destinés aux courses aux nombres\n\n this.listeArguments = [] // Variable servant à comparer les exercices pour ne pas avoir deux exercices identiques\n\n this.answers = {} // Stockage des réponses des élèves pour les envoyer à un serveur qui les enregistrera (Moodle, Capytale, LaboMep...)\n\n /**\n * Compare chaque nouvelle version d'un exercice aux précédentes pour s'assurer de ne pas avoir deux exercices identiques\n * @param {int} i indice de la question\n * @param {...any} args toutes les variables pertinentes qui \"résumeraient\" la question\n * @returns {boolean} true si la question n'a jamais été posée\n */\n this.questionJamaisPosee = function (i, ...args) {\n if (i === 0) this.listeArguments = []\n let argsConcatenes = ''\n for (const arg of args) {\n if (arg !== undefined) argsConcatenes += arg.toString()\n }\n if (this.listeArguments.indexOf(argsConcatenes) > -1) {\n return false\n } else {\n this.listeArguments.push(argsConcatenes)\n return true\n }\n }\n this.applyNewSeed = function () {\n const seed = generateSeed({\n includeUpperCase: true,\n includeNumbers: true,\n length: 4,\n startsWithLowerCase: false\n })\n this.seed = seed\n }\n}\n\n/**\n *\n * @param {{ includeUpperCase: boolean, includeNumbers: boolean, length: number, startsWithLowerCase: boolean }} paramsSeed\n * @returns string\n */\nfunction generateSeed (paramsSeed) {\n let a = 10\n const b = 'abcdefghijklmnopqrstuvwxyz'\n let c = ''\n let d = 0\n let e = '' + b\n if (paramsSeed) {\n if (paramsSeed.startsWithLowerCase) {\n c = b[Math.floor(Math.random() * b.length)]\n d = 1\n }\n if (paramsSeed.length) {\n a = paramsSeed.length\n }\n if (paramsSeed.includeUpperCase) {\n e += b.toUpperCase()\n }\n if (paramsSeed.includeNumbers) {\n e += '1234567890'\n }\n }\n for (; d < a; d++) {\n c += e[Math.floor(Math.random() * e.length)]\n }\n return c\n}\n"],"names":["Exercice","i","args","argsConcatenes","arg","seed","generateSeed","paramsSeed","a","b","c","d","e"],"mappings":"AAMe,SAASA,GAAY,CAIlC,KAAK,MAAQ,GACb,KAAK,WAAa,GAclB,KAAK,SAAW,GAChB,KAAK,mBAAqB,GAC1B,KAAK,aAAe,GACpB,KAAK,eAAiB,CAAE,EACxB,KAAK,iBAAmB,CAAE,EAC1B,KAAK,gBAAkB,CAAE,EACzB,KAAK,2BAA6B,CAAE,EACpC,KAAK,QAAU,GACf,KAAK,kBAAoB,GACzB,KAAK,eAAiB,CAAE,EACxB,KAAK,sBAAwB,CAAE,EAK/B,KAAK,QAAU,EACf,KAAK,YAAc,EAKnB,KAAK,kBAAoB,GACzB,KAAK,cAAgB,CAAE,EACvB,KAAK,mBAAqB,GAC1B,KAAK,sBAAwB,GAC7B,KAAK,OAAS,EACd,KAAK,WAAa,EAClB,KAAK,iBAAmB,GACxB,KAAK,qBAAuB,GAC5B,KAAK,kBAAoB,GACzB,KAAK,sBAAwB,GAE7B,KAAK,sBAAwB,GAK7B,KAAK,OAAS,GACd,KAAK,gBAAkB,EAKvB,KAAK,YAAc,GACnB,KAAK,mBAAqB,EAC1B,KAAK,8BAAgC,GACrC,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,GAC1B,KAAK,MAAQ,GAEb,KAAK,WAAa,GAClB,KAAK,sBAAwB,GAE7B,KAAK,0BAA4B,GACjC,KAAK,sBAAwB,GAC7B,KAAK,4BAA8B,GAEnC,KAAK,2BAA6B,GAClC,KAAK,uBAAyB,GAC9B,KAAK,6BAA+B,GAEpC,KAAK,2BAA6B,GAClC,KAAK,uBAAyB,GAC9B,KAAK,6BAA+B,GAEpC,KAAK,2BAA6B,GAClC,KAAK,uBAAyB,GAC9B,KAAK,6BAA+B,GAMpC,KAAK,aAAe,GASpB,KAAK,eAAiB,CAAE,EAExB,KAAK,QAAU,CAAE,EAQjB,KAAK,oBAAsB,SAAUC,KAAMC,EAAM,CAC3CD,IAAM,IAAG,KAAK,eAAiB,CAAE,GACrC,IAAIE,EAAiB,GACrB,UAAWC,KAAOF,EACZE,IAAQ,SAAWD,GAAkBC,EAAI,SAAU,GAEzD,OAAI,KAAK,eAAe,QAAQD,CAAc,EAAI,GACzC,IAEP,KAAK,eAAe,KAAKA,CAAc,EAChC,GAEV,EACD,KAAK,aAAe,UAAY,CAC9B,MAAME,EAAOC,EAAa,CACxB,iBAAkB,GAClB,eAAgB,GAChB,OAAQ,EACR,oBAAqB,EAC3B,CAAK,EACD,KAAK,KAAOD,CACb,CACH,CAOA,SAASC,EAAcC,EAAY,CACjC,IAAIC,EAAI,GACR,MAAMC,EAAI,6BACV,IAAIC,EAAI,GACJC,EAAI,EACJC,EAAI,GAAKH,EAgBb,IAfIF,IACEA,EAAW,sBACbG,EAAID,EAAE,KAAK,MAAM,KAAK,OAAQ,EAAGA,EAAE,MAAM,CAAC,EAC1CE,EAAI,GAEFJ,EAAW,SACbC,EAAID,EAAW,QAEbA,EAAW,mBACbK,GAAKH,EAAE,YAAa,GAElBF,EAAW,iBACbK,GAAK,eAGFD,EAAIH,EAAGG,IACZD,GAAKE,EAAE,KAAK,MAAM,KAAK,OAAQ,EAAGA,EAAE,MAAM,CAAC,EAE7C,OAAOF,CACT"}