-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintcache
1 lines (1 loc) · 21.6 KB
/
.eslintcache
1
[{"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\index.js":"1","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\mainApp.js":"2","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\MainApp.js":"3","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\components\\toggle.jsx":"4","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\QuickSort\\src\\index.js":"5","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\QuickSort\\src\\MainApp.js":"6","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\QuickSort\\src\\components\\toggle.jsx":"7","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\arrayActualState.jsx":"8","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\callsQuickSort.jsx":"9","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\inputs.jsx":"10","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\controls.jsx":"11","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\animationExplication.jsx":"12","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\mainPartition.jsx":"13"},{"size":219,"mtime":1611629964066,"results":"14","hashOfConfig":"15"},{"size":432,"mtime":1611375005141,"results":"16","hashOfConfig":"17"},{"size":13902,"mtime":1611689312588,"results":"18","hashOfConfig":"15"},{"size":1459,"mtime":1611364842459,"results":"19","hashOfConfig":"15"},{"size":246,"mtime":1611349883289,"results":"20","hashOfConfig":"21"},{"size":432,"mtime":1611375005141,"results":"22","hashOfConfig":"21"},{"size":1459,"mtime":1611364842459,"results":"23","hashOfConfig":"21"},{"size":1144,"mtime":1611536873155,"results":"24","hashOfConfig":"15"},{"size":1082,"mtime":1611629964066,"results":"25","hashOfConfig":"15"},{"size":6163,"mtime":1611669622896,"results":"26","hashOfConfig":"15"},{"size":3650,"mtime":1611689219680,"results":"27","hashOfConfig":"15"},{"size":840,"mtime":1611539978955,"results":"28","hashOfConfig":"15"},{"size":6232,"mtime":1611629964072,"results":"29","hashOfConfig":"15"},{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},"11i1ut3",{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1ovjrny",{"filePath":"35","messages":"36","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"37","usedDeprecatedRules":"32"},{"filePath":"38","messages":"39","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"40","messages":"41","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"11jndgr",{"filePath":"42","messages":"43","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"44","messages":"45","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"46","messages":"47","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"48","messages":"49","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"50","messages":"51","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"52","messages":"53","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"54","messages":"55","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"56","messages":"57","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\index.js",[],["58","59"],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\mainApp.js",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\MainApp.js",["60","61","62","63"],"import React from 'react';\r\nimport Inputs from './sections/inputs.jsx';\r\nimport ArrayActualState from './sections/arrayActualState.jsx';\r\nimport MainPartition from \"./sections/mainPartition.jsx\";\r\nimport CallsQuickSort from \"./sections/callsQuickSort.jsx\";\r\nimport Controls from \"./sections/controls.jsx\";\r\nimport AnimationExplication from \"./sections/animationExplication.jsx\";\r\n\r\n\r\nclass MainApp extends React.Component{\r\n constructor(props){\r\n super(props);\r\n this.state={\r\n array:[],\r\n script:[]\r\n };\r\n\r\n this.getArrayFromControls=this.getArrayFromControls.bind(this);\r\n this.generateQuickSortScript=this.generateQuickSortScript.bind(this);\r\n this.swap=this.swap.bind(this);\r\n this.partition=this.partition.bind(this);\r\n this.quickSort=this.quickSort.bind(this);\r\n }\r\n\r\n getArrayFromControls(value){\r\n this.setState({array:value})\r\n }\r\n\r\n generateQuickSortScript(){\r\n if(this.state.script.length===0){\r\n var array=this.state.array.slice();\r\n this.quickSort(array,0,array.length-1);\r\n this.state.script.push(\r\n {\r\n oper:\"Fquicksort\",\r\n arrayState:array.slice(),\r\n start:this.state.script[this.state.script.length-1].start,\r\n end:this.state.script[this.state.script.length-1].end\r\n }\r\n )\r\n }\r\n } \r\n\r\n swap(input, index_A, index_B) {\r\n let temp = input[index_A];\r\n\r\n input[index_A] = input[index_B];\r\n input[index_B] = temp;\r\n }\r\n\r\n partition(array,low,high){\r\n var pivot = array[high]; \r\n this.state.script.push(\r\n )\r\n var i = (low - 1) \r\n var j;\r\n var contI=0;\r\n var contJ=0;\r\n for (j = low; j <= high-1; j++){\r\n contJ++;\r\n this.state.script.push(\r\n {\r\n oper:\"Pmovej\",\r\n start:low,\r\n end:high,\r\n i:contI,\r\n j:contJ,\r\n arrayState:array.slice(),\r\n }\r\n )\r\n if (array[j] < pivot){\r\n contI++;\r\n this.state.script.push(\r\n {\r\n oper:\"Pmovei\",\r\n start:low,\r\n end:high,\r\n pivot:pivot,\r\n i:contI,\r\n j:contJ,\r\n arrayState:array.slice(),\r\n }\r\n )\r\n i++; \r\n this.swap(array,i,j)\r\n this.state.script.push(\r\n {\r\n oper:\"Pswap\",\r\n start:low,\r\n end:high,\r\n i:contI,\r\n j:contJ,\r\n arrayState:array.slice(),\r\n }\r\n )\r\n }\r\n }\r\n this.swap(array,i + 1,high)\r\n this.state.script.push(\r\n {\r\n oper:\"PPswap\",\r\n start:low,\r\n end:high,\r\n i:contI,\r\n j:contJ,\r\n arrayState:array.slice(),\r\n }\r\n )\r\n return (i + 1)\r\n }\r\n\r\n quickSort(array,start,end){\r\n if(start<end){\r\n this.state.script.push(\r\n {\r\n oper:\"quicksort\",\r\n start:start,\r\n end:end,\r\n i:0,\r\n j:0,\r\n arrayState:array.slice(),\r\n }\r\n )\r\n var pi= this.partition(array,start,end);\r\n this.quickSort(array,start, pi-1);\r\n this.quickSort(array,pi+1,end);\r\n }\r\n }\r\n\r\n\r\n render(){\r\n var screen;\r\n\r\n if(this.state.array.length!==0){\r\n this.generateQuickSortScript()\r\n screen=<MainAnimation array={this.state.array} script={this.state.script}/>\r\n }else{\r\n screen=<InitialScreen/>\r\n }\r\n \r\n return (\r\n <div className=\"container\">\r\n <div className=\"blueBar\">\r\n <div className=\"inputs\">\r\n <div className=\"title\">\r\n QuickSort\r\n </div>\r\n <Inputs onChange={this.getArrayFromControls}/>\r\n </div>\r\n <Explication/>\r\n </div>\r\n <div className=\"mainScreen\">\r\n {screen}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nfunction InitialScreen(){\r\n return (\r\n <div className=\"initialScreen\">\r\n <span>¡Pulsa \"Empezar\" para iniciar!</span>\r\n </div>\r\n )\r\n}\r\n\r\nclass MainAnimation extends React.Component{\r\n constructor(props){\r\n super(props);\r\n this.state={\r\n array:this.props.array,\r\n script:this.props.script,\r\n listCalls:[{\r\n text:\"QuickSort(\"+this.props.script[0].start+\",\"+this.props.script[0].end+\")\",\r\n done:false,\r\n },\r\n ],\r\n Pstart:this.props.script[0].start,\r\n Pend:this.props.script[0].end,\r\n wasABack:false,\r\n actualStep:0,\r\n velocity:2,\r\n play:false\r\n }\r\n this.handleOperationControl=this.handleOperationControl.bind(this);\r\n this.manageOperation=this.manageOperation.bind(this);\r\n this.goFinal=this.goFinal.bind(this);\r\n this.goFirst=this.goFirst.bind(this);\r\n this.refreshNextListCalls=this.refreshNextListCalls.bind(this);\r\n this.refreshBackListCalls=this.refreshBackListCalls.bind(this);\r\n this.playAnimation=this.playAnimation.bind(this);\r\n this.stopAnimation=this.stopAnimation.bind(this);\r\n this.playing=this.playing.bind(this);\r\n this.changeVelocity=this.changeVelocity.bind(this);\r\n this.velocities=[0,2000,1000,750,500,250];\r\n }\r\n\r\n refreshNextListCalls(scriptStep){\r\n this.state.listCalls[this.state.listCalls.length-1].done=true;\r\n this.state.listCalls.push(\r\n {\r\n text:\"QuickSort(\"+scriptStep.start+\",\"+scriptStep.end+\")\",\r\n done:false,\r\n }\r\n )\r\n this.refs.callQS.refreshListCalls(this.state.listCalls)\r\n }\r\n\r\n refreshBackListCalls(scriptStep){\r\n this.state.listCalls.pop();\r\n this.state.listCalls[this.state.listCalls.length-1].done=false;\r\n this.refs.callQS.refreshListCalls(this.state.listCalls)\r\n }\r\n\r\n cleanToFirstCall(){\r\n var newarray=this.state.listCalls.slice(0,1);\r\n newarray[0].done=false;\r\n this.setState({\r\n listCalls:newarray\r\n })\r\n this.refs.callQS.refreshListCalls(newarray)\r\n }\r\n\r\n putAllCalls(){\r\n var allCalls=[];\r\n for(var step of this.state.script){\r\n if(step.oper===\"quicksort\"){\r\n allCalls.push({\r\n text:\"QuickSort(\"+step.start+\",\"+step.end+\")\",\r\n done:true,\r\n })\r\n }\r\n }\r\n allCalls[allCalls.length-1].done=true;\r\n this.setState({\r\n listCalls:allCalls\r\n })\r\n this.refs.callQS.refreshListCalls(allCalls)\r\n }\r\n\r\n manageOperation(scriptStep,step,type){\r\n switch(scriptStep.oper){\r\n case \"quicksort\":\r\n this.refs.animation.disableAnimation()\r\n this.refs.animation.refreshQuickSort(scriptStep.start,scriptStep.end,scriptStep.arrayState);\r\n if(type===\"NEXT\")\r\n this.refreshNextListCalls(scriptStep);\r\n this.refs.explication.refreshPasoActual(step,\"Se realiza QuickSort de índice (\"+scriptStep.start+\") a índice (\"+scriptStep.end+\").\")\r\n break;\r\n case \"Pmovej\":\r\n this.refs.animation.enableAnimation()\r\n this.refs.animation.moveJ(scriptStep.j)\r\n if(\"BACK\"){\r\n this.refs.animation.moveI(scriptStep.i)\r\n this.refs.animation.swapNormal(scriptStep.arrayState)\r\n }\r\n this.refs.explication.refreshPasoActual(step,\"Se mueve una posición el índice ▼ que recorre el arreglo (de \"+(scriptStep.j-2)+\" a \"+(scriptStep.j-1)+\") y se compara el elemento con el pivote.\");\r\n break;\r\n case \"Pmovei\":\r\n this.refs.animation.enableAnimation()\r\n this.refs.animation.moveI(scriptStep.i)\r\n if(\"BACK\"){\r\n this.refs.animation.moveJ(scriptStep.j) \r\n this.refs.animation.swapNormal(scriptStep.arrayState)\r\n }\r\n this.refs.explication.refreshPasoActual(step,\"Se mueve una posición el índice ▲ del elemento más pequeño (de \"+(scriptStep.i-2)+\" a \"+(scriptStep.i-1)+\") porque el elemento ( ▼ < pivote ).\");\r\n break;\r\n case \"Pswap\":\r\n this.refs.animation.enableAnimation()\r\n this.refs.animation.swapNormal(scriptStep.arrayState)\r\n this.refs.arrayActual.update(scriptStep.arrayState)\r\n this.refs.arrayActual.update(scriptStep.arrayState)\r\n this.refs.explication.refreshPasoActual(step,\"Se intercambia elemento más pequeño ▲ con elemento actual ▼ (posición \"+(scriptStep.i-1)+\" con posición \"+(scriptStep.j-1)+\").\");\r\n break;\r\n case \"PPswap\":\r\n if(type===\"NEXT\"){\r\n this.refs.animation.swapNormal(scriptStep.arrayState)\r\n }\r\n else{\r\n\r\n if(step===(this.state.script.length-2)){\r\n this.state.listCalls[this.state.listCalls.length-1].done=false;\r\n this.refs.callQS.refreshListCalls(this.state.listCalls)\r\n }else{\r\n this.refreshBackListCalls(scriptStep);\r\n }\r\n this.refs.animation.swapAndUpdate(scriptStep.start,scriptStep.end,scriptStep.arrayState,scriptStep.j,scriptStep.i,this.state.script[step-1].arrayState[scriptStep.end])\r\n }\r\n this.refs.arrayActual.update(scriptStep.arrayState)\r\n this.refs.explication.refreshPasoActual(step,\"Se intercambia el pivote con una posición adelante del elemento más pequeño (posición \"+(scriptStep.j)+\" con posición \"+(scriptStep.i)+\").\");\r\n break;\r\n case \"Fquicksort\":\r\n this.state.listCalls[this.state.listCalls.length-1].done=true;\r\n this.refs.callQS.refreshListCalls(this.state.listCalls)\r\n this.refs.explication.refreshPasoActual(step,\"Finaliza ejecución total de QuickSort y el array ya se encuentra ordenado.\")\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n handleOperationControl(type){\r\n var nextStep;\r\n switch(type){\r\n case \"NEXT\":\r\n if(this.state.actualStep<this.state.script.length-1){\r\n nextStep=this.state.actualStep+1;\r\n this.setState({actualStep:nextStep});\r\n this.manageOperation(this.state.script[nextStep],nextStep,type);\r\n }\r\n break;\r\n case \"BACK\":\r\n if(this.state.actualStep!==0){\r\n nextStep=this.state.actualStep-1;\r\n this.setState({actualStep:nextStep});\r\n this.manageOperation(this.state.script[nextStep],nextStep,type);\r\n }\r\n break;\r\n case \"FNEXT\":\r\n nextStep=this.state.script.length-1;\r\n this.setState({actualStep:nextStep});\r\n this.goFinal();\r\n this.putAllCalls();\r\n break;\r\n case \"FBACK\":\r\n nextStep=0;\r\n this.setState({actualStep:nextStep});\r\n this.goFirst();\r\n this.cleanToFirstCall();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n goFinal(){\r\n const scriptStep=this.state.script[this.state.script.length-1];\r\n this.refs.animation.disableAnimation()\r\n this.refs.animation.swapAndUpdate(scriptStep.start,scriptStep.end,scriptStep.arrayState,scriptStep.j,scriptStep.i,this.state.script[this.state.script.length-2].arrayState[scriptStep.end])\r\n this.refs.arrayActual.update(scriptStep.arrayState)\r\n this.refs.explication.refreshPasoActual(this.state.script.length-1,scriptStep.oper)\r\n this.refs.explication.refreshPasoActual(this.state.script.length-1,\"Finaliza ejecución total de QuickSort y el array ya se encuentra ordenado.\");\r\n }\r\n\r\n goFirst(){\r\n const scriptStep=this.state.script[0];\r\n this.refs.animation.disableAnimation()\r\n this.refs.animation.refreshQuickSort(scriptStep.start,scriptStep.end,scriptStep.arrayState);\r\n this.refs.arrayActual.update(scriptStep.arrayState)\r\n this.refs.explication.refreshPasoActual(0,\"Se realiza QuickSort de índice (\"+scriptStep.start+\") a índice (\"+scriptStep.end+\").\")\r\n }\r\n\r\n playing(){\r\n if(this.state.actualStep<this.state.script.length-1){\r\n this.handleOperationControl(\"NEXT\");\r\n }else{\r\n this.stopAnimation();\r\n this.refs.controls.ended();\r\n }\r\n }\r\n\r\n playAnimation(){\r\n this.interval = setInterval(this.playing,this.velocities[this.state.velocity]);\r\n this.setState({\r\n play:true\r\n })\r\n }\r\n\r\n stopAnimation(){\r\n clearInterval( this.interval );\r\n this.setState({\r\n play:false\r\n })\r\n }\r\n\r\n changeVelocity(value){\r\n this.setState({\r\n velocity: value\r\n })\r\n if(this.state.play){\r\n clearInterval( this.interval );\r\n this.playAnimation();\r\n }\r\n }\r\n\r\n render(){\r\n\r\n return(\r\n <div className=\"mainScreen\">\r\n <ArrayActualState ref=\"arrayActual\" array={this.state.array}/>\r\n <div className=\"screenCenter\">\r\n <MainPartition ref=\"animation\" \r\n array={this.state.array}\r\n start={this.state.Pstart}\r\n end={this.state.Pend}\r\n />\r\n <CallsQuickSort ref=\"callQS\" listCalls={this.state.listCalls}/>\r\n </div>\r\n <div className=\"screenCenter\">\r\n <Controls ref=\"controls\" onControl={this.handleOperationControl} velocity={this.changeVelocity} play={this.playAnimation} stop={this.stopAnimation}/>\r\n <AnimationExplication ref=\"explication\" totalPasos={this.state.script.length}\r\n descripcion={\"Se realiza QuickSort de índice (\"+this.state.Pstart+\") a índice (\"+this.state.Pend+\").\"}\r\n pasoActual={this.state.actualStep} />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n\r\nfunction Explication(){\r\n return (\r\n <div className=\"explication\">\r\n <h1>\r\n ¿Qué es QuickSort?\r\n </h1>\r\n <p>\r\n Es un algoritmo “divide y vencerás” que resuelve el problema de ordenamiento.\r\n </p>\r\n <p>\r\n Su funcionamiento se basa primordialmente en la selección de un pivote (el cual será\r\n el elemento por el que se va a ir dividiendo una matriz) y la función de partición que ordena\r\n los elementos menores y mayores al pivote (por eso es DyV). \r\n </p>\r\n <p>\r\n Su mejor caso y caso promedio son de <b>O(nlogn).</b><br></br>\r\n Su peor caso es de <b>O(n<sup>2</sup>)</b>.\r\n </p>\r\n </div>\r\n );\r\n}\r\n\r\n\r\nexport default MainApp;\r\n","C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\components\\toggle.jsx",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\QuickSort\\src\\index.js",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\QuickSort\\src\\MainApp.js",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\QuickSort\\src\\components\\toggle.jsx",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\arrayActualState.jsx",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\callsQuickSort.jsx",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\inputs.jsx",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\controls.jsx",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\animationExplication.jsx",[],"C:\\Users\\ruben\\Documents\\ESCOM\\5to Semestre\\Análisis de Algoritmos\\Proyecto 'QuickSort'\\code\\quicksort\\src\\sections\\mainPartition.jsx",[],{"ruleId":"64","replacedBy":"65"},{"ruleId":"66","replacedBy":"67"},{"ruleId":"68","severity":1,"message":"69","line":200,"column":5,"nodeType":"70","endLine":200,"endColumn":56},{"ruleId":"68","severity":1,"message":"69","line":212,"column":5,"nodeType":"70","endLine":212,"endColumn":56},{"ruleId":"68","severity":1,"message":"69","line":283,"column":13,"nodeType":"70","endLine":283,"endColumn":64},{"ruleId":"68","severity":1,"message":"69","line":294,"column":11,"nodeType":"70","endLine":294,"endColumn":62},"no-native-reassign",["71"],"no-negated-in-lhs",["72"],"react/no-direct-mutation-state","Do not mutate state directly. Use setState().","MemberExpression","no-global-assign","no-unsafe-negation"]