{"version":3,"sources":["redux/middleware/api/api.js","redux/actions/actionTypes.js","components/boxes/situations.js","redux/store/configureStore.js","containers/games/CodingGame/ShapeTypes.js","redux/reducers/boxesModes.js","containers/games/AlgorithmGames/pipelineGraphData.js","containers/games/gameTypes.js","components/BlankGame/blanksSituation.js","redux/reducers/dummiesGameModes.js","components/Graph/config.js","components/Graph/GraphViewer.js","components/konva/URLImage/URLImage.js","components/konva/KonvaStreet/KonvaStreet.js","containers/games/GameTheoryGraph.js","containers/games/GeoGebra/GeoGebra.js","components/codingGame/CodingGameNav.js","components/codingGame/GameCircle.js","components/codingGame/GameSquare.js","containers/games/CodingGame/dotConfig.js","containers/games/CodingGame/CodingGame.js","redux/actions/codingGame.js","containers/games/CodingGame/FirstCodingGame.js","containers/games/CodingGame/SecondCodingGame.js","components/codingGrid/Grid.js","redux/actions/grid.js","containers/games/CodingGame/CodingGrid.js","components/boxes/Box.js","components/boxes/FirstContainer.js","components/boxes/SecondContainer.js","components/boxes/Machine.js","components/boxes/SimulatorView.js","redux/actions/boxesSimulation.js","containers/games/AlgorithmGames/FirstBoxesContainer.js","containers/games/AlgorithmGames/SecondBoxesContainer.js","components/codingGame/VerticalLinesView.js","containers/games/CodingGame/VerticalLines.js","redux/actions/verticalLines.js","components/dummiesGame/Dummy.js","components/dummiesGame/situations.js","components/dummiesGame/DummiesGameView.js","containers/games/AlgorithmGames/DummiesGame.js","redux/actions/dummyGame.js","redux/actions/graph.js","components/dormGame/EdgeLine.js","containers/games/GameTheoryGames/DormGame.js","components/konva/KonvaPipeline/KonvaPipeline.js","containers/games/AlgorithmGames/PipelineGraph.js","containers/games/AlgorithmGames/PipelineTable.js","containers/games/GameTheoryGames/RentRoom.js","containers/games/AlgorithmGames/PipelinePane.js","redux/actions/x-question.js","containers/games/CodingGame/CodingXSoali.js","components/SelfDrivingCar/car.js","components/SelfDrivingCar/road.js","containers/games/AIGames/SelfDrivingCar1.js","redux/actions/AI.js","containers/games/AIGames/SelfDrivingCar2.js","redux/actions/freeFall.js","containers/games/PhysicGames/FreeFall.js","containers/games/PhysicGames/Stat.js","containers/games/PhysicGames/Plot.js","containers/games/PhysicGames/PlotPage.js","containers/games/PhysicGames/FreeFallGame.js","containers/games/PhysicGames/SpaceGame.js","redux/actions/blockChain.js","containers/games/BlockChain/HashPane.js","containers/games/BlockChain/utilities.js","containers/games/BlockChain/BlockPane.js","containers/games/BlockChain/BlockChainPane.js","containers/games/BlockChain/PublicPrivateKeyPane.js","containers/games/BlockChain/SignPane.js","containers/games/BlockChain/VerifyPane.js","containers/games/BlockChain/MessageGame.js","containers/games/AlgorithmGames/SecondPipelineGraph.js","components/physics/protractor.js","containers/games/PhysicGames/Map.js","redux/actions/protractor.js","containers/games/GameTheoryGames/FirstStreetGraph.js","containers/games/GameTheoryGames/SecondStreetGraph.js","containers/games/GameTheoryGames/ThirdStreetGraph.js","redux/actions/urls.js","containers/games/GameTheoryGames/Auction.js","redux/actions/auction.js","components/BlankGame/ItemTypes.js","components/BlankGame/firstData.js","redux/actions/blankGame.js","components/BlankGame/AnswerBox.js","components/BlankGame/BlankBox.js","components/BlankGame/CodeLine.js","containers/games/BlankGame/BlankGameContainer.js","containers/games/BlankGame/FirstBlankGame.js","components/BlankGame/secondData.js","containers/games/BlankGame/SecondBlankGame.js","components/BlankGame/thirdData.js","containers/games/BlankGame/ThirdBlankGame.js","containers/game.js","containers/LandingPage.js","root/index.js","components/Alert/Alert.js","Messages.js","redux/actions/messages.js","index.js","redux/actions/socket.js","redux/middleware/socket/socket.js","redux/reducers/whiteboard.js","redux/reducers/whiteboardModes.js","redux/reducers/graph.js","redux/reducers/pipelineGraph.js","redux/reducers/secondPipelineGraph.js","redux/reducers/codingGame.js","redux/reducers/grid.js","redux/reducers/boxesInitialData.js","redux/reducers/boxesSimulation.js","redux/reducers/dummiesGame.js","redux/reducers/verticalLines.js","redux/reducers/dormGraph.js","redux/reducers/account.js","redux/reducers/messages.js","redux/reducers/fsm.js","redux/reducers/notifs.js","redux/reducers/teams.js","redux/reducers/protractor.js","containers/games/GameTheoryGames/graphsData.js","redux/reducers/firstStreeGraph.js","redux/reducers/secondStreetGraph.js","redux/reducers/thirdStreetGraph.js","redux/reducers/auction.js","redux/reducers/blankGame.js","redux/reducers/index.js","redux/reducers/socket.js","redux/reducers/freeFall.js","redux/reducers/blockChain.js","redux/reducers/AI.js","redux/reducers/x-questions.js","redux/store/configureStore.prod.js","utils/makeId.js"],"names":["callApi","url","fetchOptions","a","fetch","response","status","Error","json","json_response","ok","code","error","detail","message","text","CALL_API","getState","next","action","callAPI","actionWith","data","finalAction","Object","assign","types","payload","requestType","successType","failureType","type","dontContentType","headers","account","token","Authorization","actionTypes","DESELECT_NODE","DESELECT_NODES","SELECT_NODE","ADD_NODE_REQUEST","ADD_NODE_SUCCESS","ADD_NODE_FAILURE","UPDATE_SHAPE_PROPS_REQUEST","UPDATE_SHAPE_PROPS_SUCCESS","UPDATE_SHAPE_PROPS_FAILURE","ADD_POINTS_TO_LINE","COMPLETE_LINE_REQUEST","COMPLETE_LINE_SUCCESS","COMPLETE_LINE_FAILURE","CHANGE_MODE","INIT_WHITEBOARD","SIGNUP_REQUEST","SIGNUP_SUCCESS","SIGNUP_FAILURE","DISABLE_SIGNUPING","GROUP_SIGNUP_REQUEST","GROUP_SIGNUP_SUCCESS","GROUP_SIGNUP_FAILURE","LOGIN_SUCCESS","LOGIN_FAILURE","CHANGE_PASSWORD_SUCCESS","LOGOUT_REQUEST","CHECK_PAYMENT_SUCCESS","CHECK_PAYMENT_FAILURE","REMOVE_PAYMENT_DATA","SEND_SOLUTION_SUCCESS","SEND_SOLUTION_FAILURE","GET_NOTIFICATIONS_SUCCESS","GET_TEAMS_SUCCESS","GET_TEAM_SUCCESS","REQUEST_MENTOR_SUCCESS","CREATE_FSM_SUCCESS","CREATE_FSM_FAILURE","GET_FSM_SUCCESS","GET_FSM_FAILURE","GET_WORKSHOP_SUCCESS","EDIT_EDGES_SUCCESS","GET_STATE_SUCCESS","GET_PAGES_SUCCESS","GET_CURRENT_PAGE_SUCCESS","SUBMIT_TEAM_SUCCESS","GET_USER_INFO_SUCCESS","GET_TEAM_OUTWARD_EDGES_REQUEST","GET_TEAM_OUTWARD_EDGES_SUCCESS","SHIFT_MESSAGE","SHIFT_REDIRECT","CREATE_VERTICE","CREATE_EDGE","UPDATE_VERTICE","UPDATE_EDGE","SELECT_VERTICE","SELECT_EDGE","DESELECT_VERTICE","DESELECT_EDGE","REMOVE_SELECTED_VERTICES","REMOVE_SELECTED_EDGES","DELETE_VERTEX","DELETE_EDGE","RESET_GRAPH","UPDATE_COST","UPDATE_ADDED_FLUX","INITIAL_VERTICES","INITIAL_EDGES","CREATE_DOT","SELECT_DOT","DESELECT_DOT","CREATE_CIRCLE","UPDATE_CIRCLE","CREATE_SQUARE","UPDATE_SQUARE","CIRCLE_MODE","SQUARE_MODE","TRIANGLE_MODE","CLEAR_SHAPE","ADD_EDGE","UPDATE_EDGEE","UPDATE_DISTANCE","UPDATE_DOT","UPDATE_LINE","INSERT_DOTS","INSERT_LINES","RESET_GRID","CREATE_BOX","UPDATE_BOX","CREATE_MACHINE","UPDATE_MACHINE","DELETE_BOX","RESET_BOXES","NEXT_ROUND","CHANGE_GAME_MODE","CHANGE_TOTAL_TIME","NEXT_LEVEL","UPDATE_ANSWER","CHANGE_BOXES","CREATE_DUMMY","UPDATE_DUMMY","NEXT_DUMMY_ROUND","WRONG_ANSWERED","RESET_DUMMY_GAME","DUMMY_NEXT_LEVEl","DUMMIES_CHANGE_MODE","CREATE_POINTS","CREATE_POINT","UPDATE_POINT","CREATE_LINE","RESET_POINTS","UPDATE_SETS","UPDATE_STATE_OF_SETS","UPDATE_GUESSED_NUMBER","UPDATE_INTERVIEWER_ANSWER","UPDATE_QUESTION_STATUS","UPDATE_FREEFALL_STATE","UPDATE_FREEFALL_PAGENUMBER","UPDATE_FREEFALL_DATA","UPDATE_FREEFALL_POWER","REMOVE_SELECTED_NODES_REQUEST","REMOVE_SELECTED_NODES_SUCCESS","REMOVE_SELECTED_NODES_FAILURE","SOCKET_CONNECTION_INIT","SOCKET_CONNECTION_SUCCESS","SOCKET_CONNECTION_ERROR","SOCKET_CONNECTION_CLOSED","CLOSE_SOCKET_CONNECTION","SEND_SOCKET_MESSAGE","UPDATE_WHITEBOARD","UPDATE_HASH_DATA","UPDATE_BLOCKCHAIN_LOADING","UPDATE_PAGE_NUMBER","UPDATE_BLOCK_DATA","UPDATE_BLOCK_NONCE","UPDATE_BLOCK_MINING","UPDATE_BLOCKCHAIN_DATA","UPDATE_BLOCKCHAIN_NONCE","UPDATE_BLOCKCHAIN_MINING","UPDATE_SIGNATURE_PRIVATEKEY","UPDATE_SIGNATURE_PUBLICKEY","UPDATE_MESSAGE","UPDATE_MESSAGE_SIGNATURE","UPDATE_NEW_MESSAGE","UPDATE_VERIFICATION_STATUS","UPDATE_PROTRACTOR","RESET_MAP","ADD_DOT","UPDATE_DOTT","UPDATE_LITTLE_DOTS","DRAW_LINE","UPDATE_FIRST_ATTEMP","UPDATE_ROAD_FIRST_GAME","UPDATE_AI_FIRST_GAME_STATE","UPDATE_ROAD_SECOND_GAME","UPDATE_K_VALUE_SECOND_GAME","UPDATE_AI_SECOND_GAME_STATE","CREATE_AUCTION_REQUEST","CREATE_AUCTION_SUCCESS","CREATE_AUCTION_FAILURE","JOIN_AUCTION_REQUEST","JOIN_AUCTION_SUCCESS","JOIN_AUCTION_FAILURE","BID_REQUEST","BID_SUCCESS","BID_FAILURE","AUCTION_RESULT_REQUEST","AUCTION_RESULT_SUCCESS","AUCTION_RESULT_FAILURE","RESTART_AUCTION","UPDATE_BLANK","UPDATE_BLANK_SITUATION","IN_SHELL","IN_MACHINE_1","IN_MACHINE_2","IN_MACHINE_3","module","exports","require","CIRCLE","SQUARE","EDGE","CORRECT_ANSWER","WRONG_ANSWER","PLAYING","widthScale","window","innerWidth","heightScale","innerHeight","correctTableInputs","pipelineInitialVertices1","id","makeId","props","x","y","name","inputFlux","outputFlux","pipelineInitialEdges1","from","to","filled","capacity","canBeSelected","pipelineInitialVertices2","pipelineInitialEdges2","THIRD_BLANK_GAME","SECOND_BLANK_GAME","FIRST_BLANK_GAME","MAP_GAME","GAME_THEORY_GRAPH","FIRST_TRAFFIC_GAME","SECOND_TRAFFIC_GAME","THIRD_TRAFFIC_GAME","PIPELINE_GRAPH","SECOND_PIPELINE_GRAPH","DORM_GAME","FIRST_BLOCKCHAIN","SECOND_BLOCKCHAIN","DUMMIES_GAME","VERTICAL_LINES","FIRST_BOX_GAME","SECOND_BOX_GAME","FIRST_DRIVIING_CAR","SECOND_DRIVIING_CAR","GRID","RENT_ROOM","FIRST_CODING_GAME","SECOND_CODING_GAME","GEOGEBRA","STREET_GRAPH","FREE_FALL","SPACE_GAME","X_QUESTIONS","HASH","BLOCK","BLOCKCHAIN","MESSAGE_GAME","AUCTION_GAME1","AUCTION_GAME2","AUCTION_GAME3","AUCTION_GAME4","WRONG","CORRECT","NONE","START","GUESSING","SEE_RESAULT","vertexConfig","radius","fill","draggable","edgeConfig","tension","stroke","GraphViewer","edgItems","verticeNames","getEdgeVertices","bind","onDragMove","onStartEditing","handleTextEdit","handleTextareaKeyDown","onFinishEditing","handleOutsideClick","state","editTextValue","egdeEditingID","textEditingType","edge","_","find","this","vertices","edges","forEach","points","e","setState","target","value","edgeEdited","weight","b","parseInt","onValueChange","removeEventListener","keyCode","edgeID","targetType","editTextPosition","getAbsolutePosition","input","document","getElementById","focus","setTimeout","addEventListener","EdgeComponent","Line","width","height","map","key","ref","edgeItem","textProps","gameType","isSelected","isInput","hasChanged","lastMovPos","onTextDoubleClick","onClick","onEdgeSelect","onPositiveClick","onNegativeClick","vertex","gameTypes","s","t","notStable","shadowBlur","onSelect","onTouchStart","onDragEnd","align","verticalAlign","fontSize","strokeWidth","style","top","left","position","min","max","onChange","onKeyDown","Component","URLImage","image","toDataURL","then","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","onerror","readAsDataURL","handleLoad","naturalWidth","naturalHeight","loadImage","oldProps","src","Image","dataUrl","node","konvaNode","offsetX","dontMultiply","offsetY","React","KonvaStreet","res","firstLine","secondLine","group","setAbsolutePosition","angle","calcArrowRotation","arrow","rotation","getLayer","batchDraw","deltaX","deltaY","Math","atan","abs","PI","line","dash","formula","onTouchEnd","cornerRadius","weightText","Graph","deleteNode","updateVertex","fromID","toID","deselectEdge","selectEdge","newEdges","filter","obj","fromNodeID","toNodeID","newNodes","nodes","newB","updateEdge","sum","updateCost","Label","size","marginLeft","Detail","wholeCost","onUpdateEdge","onFormulaChange","GeoGebra","script","createElement","body","appendChild","onload","applet","GGBApplet","showToolBar","borderColor","showMenuBar","allowStyleBar","showAlgebraInput","enableLabelDrags","enableShiftDragZoom","capturingThreshold","showToolBarHelp","errorDialogsActive","showTutorialLink","showLogging","useBrowserForJS","perspective","inject","margin","ListItem","styled","li","CodingGameNav","className","listStyleType","listStyle","Icon","onSquareIconClick","cursor","onCircleIconClick","onTrashIconClick","GameCircle","onDblClick","shapeTypes","onDblTap","GameSquare","side","dotConfig","CodingGame","resizeListener","onDotClick","finishEditing","selectCircle","selectSquare","onShapeDblClick","getEdgeDots","edgeExists","getDistance","surroundingWidth","surroundingHeight","shapeEditingID","shapeEditingType","selectedShapeID","sizeValue","startX","game","createDot","dots","first","second","firstNode","secondnode","sqrt","pow","deselectDot","selectDot","dot","updateDistance","round","Number","EPSILON","shapeType","toBeAdd","ShapeTypes","square","squares","myDot","newX","newY","updateCircle","updateSquare","createCircle","createSquare","circles","circle","clearShape","shape","updateEdgee","ContainerComponent","container","distance","connect","codingGame","createEdge","Rectangle","FirstCodingGame","CurvedLine","closed","SecondCodingGame","GridComponent","lines","updateGrid","reset","firstX","firstY","tempY","length","i","push","relatedNodes","getInitDots","getInitLines","insertDots","insertLines","dotID","dotsConnected","other","linesConnected","newProps","returnNewProps","updateDot","updateLine","situation","newRelateds","removeFromArray","color","array","remove","member","resetGrid","attrs","grid","gridDots","CodingGrid","Grid","Box","boxX","boxY","box","mostLeftBox","situations","draggableBox","dragBoundFunc","pos","boxWidth","label","FirstContainer","counter","boxCounter","machineHeight","machineWidth","boxes","SecondContainer","Machine","count","machine","machine1","SimulatorView","onBoxDragEnd","onFinishButtonClick","onNextRoundClick","finished","check","stageWidth","machines","machineIndex","_lastPos","leastY","undefined","boxSituation","updateBox","nextBox","deleteBox","createBox","sum1","sum2","sum3","level","changeTotaltime","changeMode","boxesModes","optimum","alert","nextRound","changeBoxes","BoxContainer","boxContainer","columns","overflow","maxWidth","maxHeight","Column","stage","layer","machineSituation","Row","Button","Group","display","attached","textAlign","disabled","mode","marginTop","Table","Body","Cell","totalTime","nextLevel","updateAnswer","answer","FirstBoxesContainer","onUndo","onRedo","boxesSimulation","present","canUndo","past","canRedo","future","UndoActionCreators","undo","redo","shellBoxes","VerticalLinesView","getLinePoints","m","start","end","console","log","point","isUsed","VerticalLines","createPoints","getInitialPoints","returnY","updatePoint","prePointSelected","createLine","resetPoints","verticalLines","pointProps","createPoint","Dummy","dummyWidth","wrongNumber","scale","LEFT","DummiesGameView","finalAnswer","inputValue","onInputChange","onGuess","viewResault","resetDummies","innerText","gameModes","randomNumber","random","index","dummies","dummy","myIndex","totalRounds","updateDummy","preNumber","wrongAnswered","resetGame","leftX","leftY","leftCounter","rightX","rightY","rightCounter","dummyScale","alignContent","opacity","pointerDirection","pointerWidth","pointerHeight","lineJoin","padding","fontStyle","leftGroup","middleGroup","rightGroup","Segment","Container","userWrongNumber","content","Dropdown","placeholder","search","selection","options","marginRight","DummiesGame","createDummy","number","roundNumber","nextDummyRound","nextDummyLevel","resetDummyGame","changeGameMode","dummiesGame","createVertex","selectVertex","deselectVertex","removeSelectedVertices","removeSelectedEdges","resetGraph","cost","updateAddedFlux","newFlux","DormEdge","myLine","inMaxMatch","mat","create2DArray","per","mark","Array","rows","DormGame","maxEdges","isShowingMaxMatchings","matchingsLength","curMatchingIndex","currentIndex","graphHasChanged","getEdges","clacMatchings","resetEdges","showNextMaching","v","n","j","tempArray","concat","match","pop","alphabet","deleteVertex","deleteEdge","maxEdgesNum","firstIndex","secondIndex","firstID","secondID","splice","findIndex","f","showMaxMatching","onAddNodeClick","deleteMatching","dormGraph","dormVertices","dormEdges","KonvaPipeline","signs","checkGraph","checkPath","unselectEdges","handleFlux","createNode","activeEdges","preOperation","canEnterValue","predUnstableVertice","unstableVertice","studentaValue","unStableVerticID","addedNumber","addedFlux","selectedEdges","fluxValue","preFilled","checkEdges","isPath","startNodeID","selectedSize","myEdge","endNodeID","nextID","curID","unstableVertic","sign","fromNode","toNode","numberAdded","sourceID","verticIsStable","checkIfStable","nextVertic","curVertic","changeVertic","checkPipelineGraph","restartGame","cuts","hasAnswered","Input","boxShadow","resize","cutsName","vertexNames","slice","split","outputFlow","vertice","getThirdColumn","inputFlow","getFourthColumn","PipelineTable","inputs","newInputs","paddingBottom","inverted","cut","onButtonClick","panes","menuItem","render","PipelineGraph","PipelinePane","Tab","pipelineGraph","pipelineVertices","pipelineEdges","initialEdges","initialVertices","newVertices","roomDesirabilityForPlayer","X_points","keys","floor","sort","reverse","getDesirability","x1","y1","x2","y2","RentRoom","handleChange","playerAnswer","room1Phi","buttonActivation","setPlayerAnswer","playerNumber","roomNumber","room2Phi","room0Desirability","room1Desirability","pointsNumber","getPlayerPreference","centered","circular","as","direction","graph","_nds","XSoali","handleSetsChange","event","updateSets","handleGuessedNumberChange","updateGuessedNumber","XNumber","askQuestion","validateGuess","restart","guessedNumber","interviewerNumber","flag","iInit","updateInterviewerAnswer","sets","updateQuestionStatus","set_i","string","includes","updateStateOfSets","computer","tablet","mobile","isQuestionAsked","stateOfSets","interviewerMessage","x_questions","set","stateOfSet","Car","tetha","dimensions","native","Road","road","initial_car_x","initial_car_y","initial_road_x","initial_road_y","SelfDrivingCar","firstRotate","stop","resume","setInitialRoad","updateCarRotation","initialRoad","updateRoad","updateRoad_firstGame","updateState_firstGame","timer","setInterval","newRoad","sin","updateCar","deleteLastRoad","cos","shift","rotateValue","car","updateSpring","clearInterval","nextProps","nextState","scaleX","scaleY","paddingTop","AI","road1","state1","SelfDrivingCar2","isKValueValid","KValueErrorMessage","updateKValue_secondGame","getCarNewTetha","updateRoad_secondGame","updateState_secondGame","getUpdatedRoad","newTetha","KValue","road_x","labelPosition","road2","state2","updateState","updatePageNumber","pageNumber","ground","buildingWidth","initial_ball_x","buildingHeight","g","ball_scale","FreeFall","starting_y","passedTime","isBallFalling","isBallLastFall","isBallHittedGround","isBallDragging","isBallLastFall","toFixed","ball","freeFall","average","X","parseFloat","standardDeviation","averageX","correlation","Y","averageY","covariance","labels","datasets","backgroundColor","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","Chart","dataX","dataY","newData","getData","forceUpdate","PlotPage","handleDataXChange","newDataX","updateData","power","handleDataYChange","newDataY","slider_settings","step","updatePower","Xlabel","Ylabel","XlabelChar","YlabelChar","settings","justifyContent","isNaN","ownProps","FreeFallGame","SpaceGame","updateLoading","isLoading","HashPane","updateHashData","Form","TextArea","hashData","sha256","hex","blockChain","isHashValid","hash","handleDataChange","updateBlockData","handleNonceChange","updateBlockNonce","isMining","mine","blockData","blockNonce","getColor","isBlockMining","updateBlockMining","updateBlockChainData","updateBlockChainNonce","getOutput","getHash","updateBlockChainMining","blockChainData","blockChainNonce","isBlockChainMining","rsa","RSA","PublicPrivateKeyPane","generateNewKey","generateKeyPairAsync","keyPair","updatePrivateKey","privateKey","updatePublicKey","publicKey","crypt","Crypt","updateMessage","signature","updateMessageSignature","messageSignature","VerifyPane","updateNewMessage","verify","updateFirstAttemp","newMessage","updateVerificationStatus","isFirstAttemp","isVerified","MessageGame","SignPane","bottom","SecondPipelineGraph","secondPipelineGraph","secondPipelineVertices","secondPipelineEdges","Protractor","checkTransform","transformer","protractor","Map","drawLine","protractorIsSelected","getStage","updateProtractor","dotX","getPointerPosition","dotY","addDot","resetMap","littleDots","littleDot","updateLittleDots","onMapClick","onProtractorClick","onProtractorDragEnd","newDot","FirstStreetGraph","firstTrafficGraph","firstVerices","firstEdges","firstEdgesCostSum","SecondStreetGraph","secondTrafficGraph","secondVerices","secondEdges","secondEdgesCostSum","ThirdStreetGraph","thirdTrafficGraph","thirdVerices","thirdEdges","thirdEdgesCostSum","ROOT","AUCTION_RESULT","CREATE_AUCTION","JOIN_AUCTION","AUCTION_BID","toFinish","response_time","remained_time","getTime","Date","team_id","user","params","auction","createAuction","values","auction_pay_type","urls","method","JSON","stringify","joinAuction","restartAuction","bidAction","bid","getResult","delta","useState","finish","setFinish","setBid","useEffect","primary","alignItem","icon","floated","float","my_value","submited","bidders","flexWrap","bidder","background","lineHeight","ItemTypes","firstData","blankIndex","firstAnswers","firstHelps","help","updateBlank","newText","gameIndex","updateBlankSituation","newSituation","AnswerBox","useDrag","item","collect","monitor","isDragging","drag","compact","BlankBox","onDrop","lineIndex","useDrop","accept","drop","isOver","canDrop","CodeLine","blanks","lineData","answers","Popup","trigger","whiteSpace","BlankGame","checkAnswers","blankSituations","showCorrectAnswers","msTouchEnabled","navigator","msMaxTouchPoints","generalTouchEnabled","DndProvider","backend","isTouchSupported","TouchBackend","HTML5Backend","helps","answerOptions","option","blankGame","situtations","blanksSituation","BlankGameContainer","secondData","secondAnswers","secondHelps","thirdData","thirdAnswers","thirdHelps","Game","ThirdBlankGame","SecondBoxesContainer","SelfDrivingCar1","LandingPage","games","href","Root","path","component","Alert","open","setOpen","closeModal","onClose","Modal","onOpen","title","Header","Content","Description","Actions","positive","messages","redirects","dispatch","shiftRedirect","fastShift","setTimer","shiftMessage","zIndex","Message","fontWeight","negative","class","persistedState","localStorage","getItem","parse","store","configureStore","subscribe","setItem","fsm","ReactDOM","SendSocketMessageDispatcher","getStore","socket","time","send","SEND_SOCKET","sendSocketData","socketTypes","sendWhiteboard","whiteboard","init","freeze","MOVE","PAINTING","EARASING","paint","lineCap","lastUpdate","undoableWhiteboard","undoable","node_id","isPainting","shapeProps","limit","tempCapacity","edgesCostSum","newVertice","_vertices","_edges","undoablePipelineGraph","newCircle","newSquare","newCircles","newSquares","initialBoxes","optimums","undoableBoxesSimulation","newBox","newBoxes","newBoxess","rounds","newDummy","newDummies","newPointss","newPoint","newPoints","newLine","initState","refresh","signuping","access","payment","amount","typePayment","sentSolution","addMessaage","addSuccessMessage","addErrorMessage","addRedirect","workshops","pages","states","page","workshop","stt","notifs","unreads","unread_list","unread","actor_object_id","teams","currentOutwardEdges","team","newDots","firstVertices","secondVertices","blanksSituations","newBlanks","blank","newGameBlanks","gameBlanks","newBlanksSitutations","newSitutations","allReducers","combineReducers","connected","close","newBlockChainData","newBlockChainNonce","newIsBlockChainMining","tetha1","tetha2","newSets","newStateofSets","preloadedState","createStore","rootReducer","applyMiddleware","thunk","api","characters","charactersLength","charAt"],"mappings":"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","file":"static/js/main.f8388e0d.chunk.js","sourcesContent":["import * as actionTypes from '../../actions/actionTypes';\n\nconst callApi = async (url, fetchOptions) => {\n const response = await fetch(url, fetchOptions);\n if (response.status === 500) {\n throw new Error('ایراد سروری رخ دادهاست! ما رو مطلع کنید.');\n }\n\n if (response.status === 404) {\n throw new Error('صفحه مورد نظر یافت نشد!');\n }\n const json_response = await response.json();\n if (!response.ok) {\n if (\n response.status === 401 &&\n json_response.code &&\n json_response.code === 'token_not_valid'\n ) {\n throw new Error('TOKEN_EXPIRED');\n }\n if (json_response.error) {\n throw new Error(json_response.error);\n } else if (json_response.detail) {\n throw new Error(json_response.detail);\n } else if (json_response.message) {\n throw new Error(json_response.message);\n } else {\n throw new Error(response.text);\n }\n }\n return json_response;\n};\n\nexport const CALL_API = 'Call API';\n\nexport default ({ getState }) => (next) => async (action) => {\n const callAPI = action[CALL_API];\n if (typeof callAPI === 'undefined') {\n return next(action);\n }\n\n const actionWith = (data) => {\n const finalAction = Object.assign({}, action, data);\n delete finalAction[CALL_API];\n return finalAction;\n };\n\n let { fetchOptions } = callAPI;\n const { url, types, payload } = callAPI;\n const [requestType, successType, failureType] = types;\n next(actionWith({ payload, type: requestType }));\n\n try {\n if (!fetchOptions.dontContentType) {\n fetchOptions.headers = {\n 'Content-Type': 'application/json',\n ...fetchOptions.headers,\n };\n }\n const account = getState().account;\n if (!!account && !!account.token) {\n fetchOptions.headers = {\n ...fetchOptions.headers,\n Authorization: 'JWT ' + account.token,\n };\n }\n const response = await callApi(url, fetchOptions);\n return next(\n actionWith({\n payload,\n response,\n type: successType,\n })\n );\n } catch (error) {\n if (error.message === 'TOKEN_EXPIRED') {\n return next(\n actionWith({\n type: actionTypes.LOGOUT_REQUEST,\n error: error.message || 'Something bad happened!',\n })\n );\n }\n return next(\n actionWith({\n type: failureType,\n error: error.message || 'Something bad happened!',\n })\n );\n }\n};\n","// whiteBoard:\nexport const DESELECT_NODE = 'DESELECT_NODE';\nexport const DESELECT_NODES = 'DESELECT_NODES';\nexport const SELECT_NODE = 'SELECT_NODE';\nexport const ADD_NODE_REQUEST = 'ADD_NODE_REQUEST';\nexport const ADD_NODE_SUCCESS = 'ADD_NODE_SUCCESS';\nexport const ADD_NODE_FAILURE = 'ADD_NODE_FAILURE';\nexport const UPDATE_SHAPE_PROPS_REQUEST = 'UPDATE_SHAPE_PROPS_REQUEST';\nexport const UPDATE_SHAPE_PROPS_SUCCESS = 'UPDATE_SHAPE_PROPS_SUCCESS';\nexport const UPDATE_SHAPE_PROPS_FAILURE = 'UPDATE_SHAPE_PROPS_FAILURE';\nexport const ADD_POINTS_TO_LINE = 'ADD_POINTS_TO_LINE';\nexport const COMPLETE_LINE_REQUEST = 'COMPLETE_LINE_REQUEST';\nexport const COMPLETE_LINE_SUCCESS = 'COMPLETE_LINE_SUCCESS';\nexport const COMPLETE_LINE_FAILURE = 'COMPLETE_LINE_FAILURE';\nexport const CHANGE_MODE = 'CHANGE_MODE';\nexport const REMOVE_SELECTED_NODES = 'REMOVE_SELECTED_NODES';\nexport const INIT_WHITEBOARD = 'INIT_WHITEBOARD';\n\n// account\nexport const SIGNUP_REQUEST = 'SIGNUP_REQUEST';\nexport const SIGNUP_SUCCESS = 'SIGNUP_SUCCESS';\nexport const SIGNUP_FAILURE = 'SIGNUP_FAILURE';\nexport const DISABLE_SIGNUPING = 'DISABLE_SIGNUPING';\n\nexport const GROUP_SIGNUP_REQUEST = 'GROUP_SIGNUP_REQUEST';\nexport const GROUP_SIGNUP_SUCCESS = 'GROUP_SIGNUP_SUCCESS';\nexport const GROUP_SIGNUP_FAILURE = 'GROUP_SIGNUP_FAILURE';\n\nexport const LOGIN_REQUEST = 'LOGIN_REQUEST';\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\nexport const LOGIN_FAILURE = 'LOGIN_FAILURE';\n\nexport const CHANGE_PASSWORD_REQUEST = 'CHANGE_PASSWORD_REQUEST';\nexport const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS';\nexport const CHANGE_PASSWORD_FAILURE = 'CHANGE_PASSWORD_FAILURE';\n\nexport const LOGOUT_REQUEST = 'LOGOUT_REQUEST';\nexport const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';\nexport const LOGOUT_FAILURE = 'LOGOUT_FAILURE';\n\nexport const CHECK_PAYMENT_REQUEST = 'CHECK_PAYMENT_REQUEST';\nexport const CHECK_PAYMENT_SUCCESS = 'CHECK_PAYMENT_SUCCESS';\nexport const CHECK_PAYMENT_FAILURE = 'CHECK_PAYMENT_FAILURE';\nexport const REMOVE_PAYMENT_DATA = 'REMOVE_PAYMENT_DATA';\n\nexport const SEND_SOLUTION_REQUEST = 'SEND_SOLUTION_REQUEST';\nexport const SEND_SOLUTION_SUCCESS = 'SEND_SOLUTION_SUCCESS';\nexport const SEND_SOLUTION_FAILURE = 'SEND_SOLUTION_FAILURE';\n\nexport const GET_NOTIFICATIONS_REQUEST = 'GET_NOTIFICATIONS_REQUEST';\nexport const GET_NOTIFICATIONS_SUCCESS = 'GET_NOTIFICATIONS_SUCCESS';\nexport const GET_NOTIFICATIONS_FAILURE = 'GET_NOTIFICATIONS_FAILURE';\n\nexport const GET_TEAMS_REQUEST = 'GET_TEAMS_REQUEST';\nexport const GET_TEAMS_SUCCESS = 'GET_TEAMS_SUCCESS';\nexport const GET_TEAMS_FAILURE = 'GET_TEAMS_FAILURE';\n\nexport const GET_TEAM_REQUEST = 'GET_TEAM_REQUEST';\nexport const GET_TEAM_SUCCESS = 'GET_TEAM_SUCCESS';\nexport const GET_TEAM_FAILURE = 'GET_TEAM_FAILURE';\n\nexport const REQUEST_MENTOR_REQUEST = 'REQUEST_MENTOR_REQUEST';\nexport const REQUEST_MENTOR_SUCCESS = 'REQUEST_MENTOR_SUCCESS';\nexport const REQUEST_MENTOR_FAILURE = 'REQUEST_MENTOR_FAILURE';\n\nexport const GO_TO_TEAM_REQUEST = 'GO_TO_TEAM_REQUEST';\nexport const GO_TO_TEAM_SUCCESS = 'GO_TO_TEAM_SUCCESS';\nexport const GO_TO_TEAM_FAILURE = 'GO_TO_TEAM_FAILURE';\n\n// fsm\nexport const CREATE_FSM_REQUEST = 'CREATE_FSM_REQUEST';\nexport const CREATE_FSM_SUCCESS = 'CREATE_FSM_SUCCESS';\nexport const CREATE_FSM_FAILURE = 'CREATE_FSM_FAILURE';\n\nexport const CREATE_STATE_REQUEST = 'CREATE_STATE_REQUEST';\nexport const CREATE_STATE_SUCCESS = 'CREATE_STATE_SUCCESS';\nexport const CREATE_STATE_FAILURE = 'CREATE_STATE_FAILURE';\n\nexport const GET_FSM_REQUEST = 'GET_FSM_REQUEST';\nexport const GET_FSM_SUCCESS = 'GET_FSM_SUCCESS';\nexport const GET_FSM_FAILURE = 'GET_FSM_FAILURE';\n\nexport const GET_WORKSHOP_REQUEST = 'GET_WORKSHOP_REQUEST';\nexport const GET_WORKSHOP_SUCCESS = 'GET_WORKSHOP_SUCCESS';\nexport const GET_WORKSHOP_FAILURE = 'GET_WORKSHOP_FAILURE';\n\nexport const EDIT_EDGES_REQUEST = 'EDIT_EDGES_REQUEST';\nexport const EDIT_EDGES_SUCCESS = 'EDIT_EDGES_SUCCESS';\nexport const EDIT_EDGES_FAILURE = 'EDIT_EDGES_FAILURE';\n\nexport const GET_STATE_REQUEST = 'GET_STATE_REQUEST';\nexport const GET_STATE_SUCCESS = 'GET_STATE_SUCCESS';\nexport const GET_STATE_FAILURE = 'GET_STATE_FAILURE';\n\nexport const DELETE_PAGE_REQUEST = 'DELETE_PAGE_REQUEST';\nexport const DELETE_PAGE_SUCCESS = 'DELETE_PAGE_SUCCESS';\nexport const DELETE_PAGE_FAILURE = 'DELETE_PAGE_FAILURE';\n\nexport const DELETE_WIDGET_REQUEST = 'DELETE_WIDGET_REQUEST';\nexport const DELETE_WIDGET_SUCCESS = 'DELETE_WIDGET_SUCCESS';\nexport const DELETE_WIDGET_FAILURE = 'DELETE_WIDGET_FAILURE';\n\nexport const CREATE_WIDGET_REQUEST = 'CREATE_WIDGET_REQUEST';\nexport const CREATE_WIDGET_SUCCESS = 'CREATE_WIDGET_SUCCESS';\nexport const CREATE_WIDGET_FAILURE = 'CREATE_WIDGET_FAILURE';\n\nexport const GET_WIDGET_REQUEST = 'GET_WIDGET_REQUEST';\nexport const GET_WIDGET_SUCCESS = 'GET_WIDGET_SUCCESS';\nexport const GET_WIDGET_FAILURE = 'GET_WIDGET_FAILURE';\n\nexport const GET_PAGES_REQUEST = 'GET_PAGES_REQUEST';\nexport const GET_PAGES_SUCCESS = 'GET_PAGES_SUCCESS';\nexport const GET_PAGES_FAILURE = 'GET_PAGES_FAILURE';\n\nexport const GET_CURRENT_PAGE_REQUEST = 'GET_CURRENT_PAGE_REQUEST';\nexport const GET_CURRENT_PAGE_SUCCESS = 'GET_CURRENT_PAGE_SUCCESS';\nexport const GET_CURRENT_PAGE_FAILURE = 'GET_CURRENT_PAGE_FAILURE';\n\nexport const SUBMIT_TEAM_REQUEST = 'SUBMIT_TEAM_REQUEST';\nexport const SUBMIT_TEAM_SUCCESS = 'SUBMIT_TEAM_SUCCESS';\nexport const SUBMIT_TEAM_FAILURE = 'SUBMIT_TEAM_FAILURE';\n\nexport const MOVE_TO_NEXT_STATE_REQUEST = 'MOVE_TO_NEXT_STATE_REQUEST';\nexport const MOVE_TO_NEXT_STATE_SUCCESS = 'MOVE_TO_NEXT_STATE_SUCCESS';\nexport const MOVE_TO_NEXT_STATE_FAILURE = 'MOVE_TO_NEXT_STATE_FAILURE';\n\nexport const SET_FIRST_CURRENT_PAGE_REQUEST = 'SET_FIRST_CURRENT_PAGE_REQUEST';\nexport const SET_FIRST_CURRENT_PAGE_SUCCESS = 'SET_FIRST_CURRENT_PAGE_SUCCESS';\nexport const SET_FIRST_CURRENT_PAGE_FAILURE = 'SET_FIRST_CURRENT_PAGE_FAILURE';\n\nexport const GET_USER_INFO_REQUEST = 'GET_USER_INFO_REQUEST';\nexport const GET_USER_INFO_SUCCESS = 'GET_USER_INFO_SUCCESS';\nexport const GET_USER_INFO_FAILURE = 'GET_USER_INFO_FAILURE';\n\nexport const GET_TEAM_OUTWARD_EDGES_REQUEST = 'GET_TEAM_OUTWARD_EDGES_REQUEST';\nexport const GET_TEAM_OUTWARD_EDGES_SUCCESS = 'GET_TEAM_OUTWARD_EDGES_SUCCESS';\nexport const GET_TEAM_OUTWARD_EDGES_FAILURE = 'GET_TEAM_OUTWARD_EDGES_FAILURE';\n\nexport const SEND_ANSWER_REQUEST = 'SEND_ANSWER_REQUEST';\nexport const SEND_ANSWER_SUCCESS = 'SEND_ANSWER_SUCCESS';\nexport const SEND_ANSWER_FAILURE = 'SEND_ANSWER_FAILURE';\n\n// message\nexport const SHIFT_MESSAGE = 'SHIFT_MESSAGE';\nexport const SHIFT_REDIRECT = 'SHIFT_REDIRECT';\n\n//graph:\nexport const CREATE_VERTICE = 'CREATE_VERTICE';\nexport const CREATE_EDGE = 'CREATE_EDGE';\nexport const UPDATE_VERTICE = 'UPDATE_VERTICE';\nexport const UPDATE_EDGE = 'UPDATE_EDGE';\nexport const SELECT_VERTICE = 'SELECT_VERTICE';\nexport const SELECT_EDGE = 'SELECT_EDGE';\nexport const DESELECT_VERTICE = 'DESELECT_VERTICE';\nexport const DESELECT_EDGE = 'DESELECT_EDGE';\nexport const REMOVE_SELECTED_VERTICES = 'REMOVE_SELECTED_VERTICES';\nexport const REMOVE_SELECTED_EDGES = 'REMOVE_SELECTED_EDGES';\nexport const DELETE_VERTEX = 'DELETE_VERTEX';\nexport const DELETE_EDGE = 'DELETE_EDGE';\nexport const RESET_GRAPH = 'RESET_GRAPH';\nexport const UPDATE_COST = 'UPDATE_COST';\nexport const UPDATE_ADDED_FLUX = 'UPDATE_ADDED_FLUX';\nexport const INITIAL_VERTICES = 'INITIAL_VERTICES';\nexport const INITIAL_EDGES = 'INITIAL_EDGES';\n\n//coding graph\nexport const CREATE_DOT = 'CREATE_DOT';\nexport const SELECT_DOT = 'SELECT_DOT';\nexport const DESELECT_DOT = 'DESELECT_DOT';\nexport const CREATE_CIRCLE = 'CREATE_CIRCLE';\nexport const UPDATE_CIRCLE = 'UPDATE_CIRCLE';\nexport const CREATE_SQUARE = 'CREATE_SQUARE';\nexport const UPDATE_SQUARE = 'UPDATE_SQUARE';\nexport const CIRCLE_MODE = 'CIRCLE_MODE';\nexport const SQUARE_MODE = 'SQUARE_MODE';\nexport const TRIANGLE_MODE = 'TRIANGLE_MODE';\nexport const CLEAR_SHAPE = 'CLEAR_SHAPE';\nexport const ADD_EDGE = 'ADD_EDGE';\nexport const UPDATE_EDGEE = 'UPDATE_EDGEE';\nexport const UPDATE_DISTANCE = 'UPDATE_DISTANCE';\n\n//coding grid\nexport const UPDATE_DOT = 'UPDATE_DOT';\nexport const UPDATE_LINE = 'UPDATE_LINE';\nexport const INSERT_DOTS = 'INSERT_DOTS';\nexport const INSERT_LINES = 'INSERT_LINES';\nexport const RESET_GRID = 'RESET_GRID';\n\n//algorithm: first simulation\nexport const CREATE_BOX = 'CREATE_BOX';\nexport const UPDATE_BOX = 'UPDATE_BOX';\nexport const CREATE_MACHINE = 'CREATE_MACHINE';\nexport const UPDATE_MACHINE = 'UPDATE_MACHINE';\nexport const DELETE_BOX = 'DELETE_BOX';\nexport const RESET_BOXES = 'RESET_BOXES';\nexport const NEXT_ROUND = 'NEXT_ROUND';\nexport const CHANGE_GAME_MODE = 'CHANGE_GAME_MODE';\nexport const CHANGE_TOTAL_TIME = 'CHANGE_TOTAL_TIME';\nexport const NEXT_LEVEL = 'NEXT_LEVEL';\nexport const UPDATE_ANSWER = 'UPDATE_ANSWER';\nexport const CHANGE_BOXES = 'CHANGE_BOXES';\n\n//algorithm: dummies game\nexport const CREATE_DUMMY = 'CREATE_DUMMY';\nexport const UPDATE_DUMMY = 'UPDATE_DUMMY';\nexport const NEXT_DUMMY_ROUND = 'NEXT_DUMMY_ROUND';\nexport const WRONG_ANSWERED = 'WRONG_ANSWERED';\nexport const RESET_DUMMY_GAME = 'RESET_DUMMY_GAME';\nexport const DUMMY_NEXT_LEVEl = 'DUMMY_NEXT_LEVEl';\nexport const DUMMIES_CHANGE_MODE = 'DUMMIES_CHANGE_MODE';\n\n//coding: vertical lines\nexport const CREATE_POINTS = 'CREATE_POINTS';\nexport const CREATE_POINT = 'CREATE_POINT';\nexport const UPDATE_POINT = 'UPDATE_POINT';\nexport const CREATE_LINE = 'CREATE_LINE';\nexport const RESET_POINTS = 'RESET_POINTS';\n\n//coding: x-question\nexport const UPDATE_SETS = 'UPDATE_SETS';\nexport const UPDATE_STATE_OF_SETS = 'UPDATE_STATE_OF_SETS';\nexport const UPDATE_GUESSED_NUMBER = 'UPDATE_GUESSED_NUMBER';\nexport const UPDATE_INTERVIEWER_ANSWER = 'UPDATE_INTERVIEWER_ANSWER';\nexport const UPDATE_QUESTION_STATUS = 'UPDATE_QUESTION_STATUS';\n\n//physics: freeFall\nexport const UPDATE_FREEFALL_STATE = 'UPDATE_FREEFALL_STATE';\nexport const UPDATE_FREEFALL_PAGENUMBER = 'UPDATE_FREEFALL_PAGENUMBER';\nexport const UPDATE_FREEFALL_DATA = 'UPDATE_FREEFALL_DATA';\nexport const UPDATE_FREEFALL_POWER = 'UPDATE_FREEFALL_POWER';\n\n//websocket\nexport const REMOVE_SELECTED_NODES_REQUEST = 'REMOVE_SELECTED_NODES_REQUEST';\nexport const REMOVE_SELECTED_NODES_SUCCESS = 'REMOVE_SELECTED_NODES_SUCCESS';\nexport const REMOVE_SELECTED_NODES_FAILURE = 'REMOVE_SELECTED_NODES_FAILURE';\n\nexport const SOCKET_CONNECTION_INIT = 'SOCKET_CONNECTION_INIT';\nexport const SOCKET_CONNECTION_SUCCESS = 'SOCKET_CONNECTION_SUCCESS';\nexport const SOCKET_CONNECTION_ERROR = 'SOCKET_CONNECTION_ERROR';\nexport const SOCKET_CONNECTION_CLOSED = 'SOCKET_CONNECTION_CLOSED';\nexport const CLOSE_SOCKET_CONNECTION = 'CLOSE_SOCKET_CONNECTION';\nexport const SOCKET_MESSAGE = 'SOCKET_MESSAGE';\nexport const SEND_SOCKET_MESSAGE = 'SEND_SOCKET_MESSAGE';\n\nexport const UPDATE_WHITEBOARD = 'UPDATE_WHITEBOARD';\n\n//blockChain: all\nexport const UPDATE_HASH_DATA = 'UPDATE_HASH_DATA';\nexport const UPDATE_BLOCKCHAIN_LOADING = 'UPDATE_BLOCKCHAIN_LOADING';\nexport const UPDATE_PAGE_NUMBER = 'UPDATE_PAGE_NUMBER';\n\nexport const UPDATE_BLOCK_DATA = 'UPDATE_BLOCK_DATA';\nexport const UPDATE_BLOCK_NONCE = 'UPDATE_BLOCK_NONCE';\nexport const UPDATE_BLOCK_MINING = 'UPDATE_BLOCK_MINING';\n\nexport const UPDATE_BLOCKCHAIN_DATA = 'UPDATE_BLOCKCHAIN_DATA';\nexport const UPDATE_BLOCKCHAIN_NONCE = 'UPDATE_BLOCKCHAIN_NONCE';\nexport const UPDATE_BLOCKCHAIN_MINING = 'UPDATE_BLOCKCHAIN_MINING';\n\nexport const UPDATE_SIGNATURE_PRIVATEKEY = 'UPDATE_SIGNATURE_PRIVATEKEY';\nexport const UPDATE_SIGNATURE_PUBLICKEY = 'UPDATE_SIGNATURE_PUBLICKEY';\n\nexport const UPDATE_MESSAGE = 'UPDATE_MESSAGE';\nexport const UPDATE_MESSAGE_SIGNATURE = 'UPDATE_MESSAGE_SIGNATURE';\n\nexport const UPDATE_NEW_MESSAGE = 'UPDATE_NEW_MESSAGE';\nexport const UPDATE_VERIFICATION_STATUS = 'UPDATE_VERIFICATION_STATUS';\n\n//Protractor\nexport const UPDATE_PROTRACTOR = 'UPDATE_PROTRACTOR';\nexport const RESET_MAP = 'RESET_MAP';\nexport const ADD_DOT = 'ADD_DOT';\nexport const UPDATE_DOTT = 'UPDATE_DOTT';\nexport const UPDATE_LITTLE_DOTS = 'UPDATE_LITTLE_DOTS';\nexport const DRAW_LINE = 'DRAW_LINE';\n\nexport const UPDATE_FIRST_ATTEMP = 'UPDATE_FIRST_ATTEMP';\n\n// AI: game1\nexport const UPDATE_ROAD_FIRST_GAME = 'UPDATE_ROAD_FIRST_GAME';\nexport const UPDATE_AI_FIRST_GAME_STATE = 'UPDATE_AI_FIRST_GAME_STATE';\n\n// AI: game2\nexport const UPDATE_ROAD_SECOND_GAME = 'UPDATE_ROAD_SECOND_GAME';\nexport const UPDATE_K_VALUE_SECOND_GAME = 'UPDATE_K_VALUE_SECOND_GAME';\nexport const UPDATE_AI_SECOND_GAME_STATE = 'UPDATE_AI_SECOND_GAME_STATE';\n\n//gameTheory\nexport const CREATE_AUCTION_REQUEST = 'CREATE_AUCTION_REQUEST';\nexport const CREATE_AUCTION_SUCCESS = 'CREATE_AUCTION_SUCCESS';\nexport const CREATE_AUCTION_FAILURE = 'CREATE_AUCTION_FAILURE';\n\nexport const JOIN_AUCTION_REQUEST = 'JOIN_AUCTION_REQUEST';\nexport const JOIN_AUCTION_SUCCESS = 'JOIN_AUCTION_SUCCESS';\nexport const JOIN_AUCTION_FAILURE = 'JOIN_AUCTION_FAILURE';\n\nexport const BID_REQUEST = 'BID_REQUEST';\nexport const BID_SUCCESS = 'BID_SUCCESS';\nexport const BID_FAILURE = 'BID_FAILURE';\n\nexport const AUCTION_RESULT_REQUEST = 'AUCTION_RESULT_REQUEST';\nexport const AUCTION_RESULT_SUCCESS = 'AUCTION_RESULT_SUCCESS';\nexport const AUCTION_RESULT_FAILURE = 'AUCTION_RESULT_FAILURE';\n\nexport const RESTART_AUCTION = 'RESTART_AUCTION';\n\n//Blank Game\nexport const UPDATE_BLANK = 'UPDATE_BLANK';\nexport const UPDATE_BLANK_SITUATION = 'UPDATE_BLANK_SITUATION';\n","export const IN_SHELL = 'IN_SHELL';\nexport const IN_MACHINE = 'IN_MACHINE';\nexport const IN_MACHINE_1 = 'IN_MACHINE_1';\nexport const IN_MACHINE_2 = 'IN_MACHINE_2';\nexport const IN_MACHINE_3 = 'IN_MACHINE_3';\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./configureStore.prod');\n} else {\n module.exports = require('./configureStore.dev');\n}\n","export const CIRCLE = 'CIRCLE';\nexport const SQUARE = 'SQUARE';\nexport const EDGE = 'EDGE';","export const ON_FINISH_CLICKED = 'ON_FINISH_CLICKED';\nexport const CORRECT_ANSWER = 'CORRECT_ANSWER';\nexport const WRONG_ANSWER = 'WRONG_ANSWER';\nexport const PLAYING = 'PLAYING';\n","import makeId from '../../../utils/makeId';\n\nconst widthScale = window.innerWidth / 671;\nconst heightScale = window.innerHeight / 381;\n\nexport const correctTableInputs = [\n '20',\n '30',\n '24',\n '19',\n '36',\n '32',\n '21',\n '30',\n '26',\n '29',\n '40',\n '20',\n '27',\n '32',\n '30',\n '20',\n];\n\nexport const pipelineInitialVertices1 = [\n {\n id: makeId(),\n props: {\n x: 50 * widthScale,\n y: 180 * heightScale,\n name: 's',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 200 * widthScale,\n y: 50 * heightScale,\n name: 'h',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 200 * widthScale,\n y: 300 * heightScale,\n name: 'r',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 450 * widthScale,\n y: 50 * heightScale,\n name: 'o',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 500 * widthScale,\n y: 300 * heightScale,\n name: 'v',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 600 * widthScale,\n y: 170 * heightScale,\n name: 't',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n];\n\nexport const pipelineInitialEdges1 = [\n {\n id: makeId(),\n from: pipelineInitialVertices1[1].id,\n to: pipelineInitialVertices1[0].id,\n filled: 0,\n props: {\n capacity: 10,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[2].id,\n to: pipelineInitialVertices1[0].id,\n filled: 0,\n props: {\n capacity: 10,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[2].id,\n to: pipelineInitialVertices1[1].id,\n filled: 0,\n props: {\n capacity: 2,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[3].id,\n to: pipelineInitialVertices1[1].id,\n filled: 0,\n props: {\n capacity: 4,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[3].id,\n to: pipelineInitialVertices1[4].id,\n filled: 0,\n props: {\n capacity: 6,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[4].id,\n to: pipelineInitialVertices1[1].id,\n filled: 0,\n props: {\n capacity: 8,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[4].id,\n to: pipelineInitialVertices1[2].id,\n filled: 0,\n props: {\n capacity: 9,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[5].id,\n to: pipelineInitialVertices1[3].id,\n filled: 0,\n props: {\n capacity: 10,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices1[5].id,\n to: pipelineInitialVertices1[4].id,\n filled: 0,\n props: {\n capacity: 10,\n canBeSelected: false,\n },\n },\n];\n\nexport const pipelineInitialVertices2 = [\n {\n id: makeId(),\n props: {\n x: 50 * widthScale,\n y: 180 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 200 * widthScale,\n y: 55 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 200 * widthScale,\n y: 320 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 260 * widthScale,\n y: 180 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 350 * widthScale,\n y: 55 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 500 * widthScale,\n y: 55 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 450 * widthScale,\n y: 180 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 350 * widthScale,\n y: 320 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 500 * widthScale,\n y: 320 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n {\n id: makeId(),\n props: {\n x: 620 * widthScale,\n y: 180 * heightScale,\n name: '',\n inputFlux: 0,\n outputFlux: 0,\n },\n },\n];\n\nexport const pipelineInitialEdges2 = [\n {\n id: makeId(),\n from: pipelineInitialVertices2[1].id,\n to: pipelineInitialVertices2[0].id,\n filled: 0,\n props: {\n capacity: 9,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[2].id,\n to: pipelineInitialVertices2[0].id,\n filled: 0,\n props: {\n capacity: 4,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[3].id,\n to: pipelineInitialVertices2[1].id,\n filled: 0,\n props: {\n capacity: 6,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[3].id,\n to: pipelineInitialVertices2[2].id,\n filled: 0,\n props: {\n capacity: 1,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[4].id,\n to: pipelineInitialVertices2[3].id,\n filled: 0,\n props: {\n capacity: 7,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[7].id,\n to: pipelineInitialVertices2[3].id,\n filled: 0,\n props: {\n capacity: 3,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[7].id,\n to: pipelineInitialVertices2[2].id,\n filled: 0,\n props: {\n capacity: 5,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[6].id,\n to: pipelineInitialVertices2[7].id,\n filled: 0,\n props: {\n capacity: 5,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[5].id,\n to: pipelineInitialVertices2[6].id,\n filled: 0,\n props: {\n capacity: 2,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[4].id,\n to: pipelineInitialVertices2[5].id,\n filled: 0,\n props: {\n capacity: 5,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[4].id,\n to: pipelineInitialVertices2[7].id,\n filled: 0,\n props: {\n capacity: 1,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[8].id,\n to: pipelineInitialVertices2[6].id,\n filled: 0,\n props: {\n capacity: 7,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[9].id,\n to: pipelineInitialVertices2[8].id,\n filled: 0,\n props: {\n capacity: 5,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[9].id,\n to: pipelineInitialVertices2[5].id,\n filled: 0,\n props: {\n capacity: 8,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[3].id,\n to: pipelineInitialVertices2[6].id,\n filled: 0,\n props: {\n capacity: 4,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[6].id,\n to: pipelineInitialVertices2[4].id,\n filled: 0,\n props: {\n capacity: 3,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[4].id,\n to: pipelineInitialVertices2[1].id,\n filled: 0,\n props: {\n capacity: 3,\n canBeSelected: false,\n },\n },\n {\n id: makeId(),\n from: pipelineInitialVertices2[7].id,\n to: pipelineInitialVertices2[8].id,\n filled: 0,\n props: {\n capacity: 3,\n canBeSelected: false,\n },\n },\n];\n","export default {\n THIRD_BLANK_GAME: {\n name: 'بازی جای خالی سوم',\n type: 'THIRD_BLANK_GAME',\n url: '/games/THIRD_BLANK_GAME/',\n },\n SECOND_BLANK_GAME: {\n name: 'بازی جای خالی دوم',\n type: 'SECOND_BLANK_GAME',\n url: '/games/SECOND_BLANK_GAME/',\n },\n FIRST_BLANK_GAME: {\n name: 'بازی جای خالی اول',\n type: 'FIRST_BLANK_GAME',\n url: '/games/FIRST_BLANK_GAME/',\n },\n MAP_GAME: {\n name: 'بازی نقاله و نقشه',\n type: 'MAP_GAME',\n url: '/games/MAP_GAME/',\n },\n GAME_THEORY_GRAPH: {\n name: 'بازی ترافیک ',\n type: 'GAME_THEORY_GRAPH',\n url: '/games/GAME_THEORY_GRAPH/',\n },\n FIRST_TRAFFIC_GAME: {\n name: 'بازی ترافیک اول',\n type: 'FIRST_TRAFFIC_GAME',\n url: '/games/FIRST_TRAFFIC_GAME/',\n },\n SECOND_TRAFFIC_GAME: {\n name: 'بازی ترافیک دوم',\n type: 'SECOND_TRAFFIC_GAME',\n url: '/games/SECOND_TRAFFIC_GAME/',\n },\n THIRD_TRAFFIC_GAME: {\n name: 'بازی ترافیک سوم',\n type: 'THIRD_TRAFFIC_GAME',\n url: '/games/THIRD_TRAFFIC_GAME/',\n },\n PIPELINE_GRAPH: {\n name: 'بازی شار',\n type: 'PIPELINE_GRAPH',\n url: '/games/PIPELINE_GRAPH/',\n },\n SECOND_PIPELINE_GRAPH: {\n name: 'بازی شار دوم',\n type: 'SECOND_PIPELIINE_GRAPH',\n url: '/games/SECOND_PIPELIINE_GRAPH/',\n },\n DORM_GAME: {\n name: 'بازی خوابگاه',\n type: 'DORM_GAME',\n url: '/games/DORM_GAME/',\n },\n FIRST_BLOCKCHAIN: {\n name: 'بلاکچین اول',\n type: 'FIRST_BLOCKCHAIN',\n url: '/games/FIRST_BLOCKCHAIN/',\n },\n SECOND_BLOCKCHAIN: {\n name: 'بلاکچین دوم',\n type: 'SECOND_BLOCKCHAIN',\n url: '/games/SECOND_BLOCKCHAIN/',\n },\n DUMMIES_GAME: {\n name: 'بازی آدمکها',\n type: 'DUMMIES_GAME',\n url: '/games/DUMMIES_GAME/',\n },\n VERTICAL_LINES: {\n name: 'خطهای عمودی',\n type: 'VERTICAL_LINES',\n url: '/games/VERTICAL_LINES/',\n },\n FIRST_BOX_GAME: {\n name: 'جعبهها و ماشینها اول',\n type: 'FIRST_BOX_GAME',\n url: '/games/FIRST_BOX_GAME/',\n },\n SECOND_BOX_GAME: {\n name: 'جعبهها و ماشینها دوم',\n type: 'SECOND_BOX_GAME',\n url: '/games/SECOND_BOX_GAME/',\n },\n FIRST_DRIVIING_CAR: {\n name: 'ماشین خودران اول',\n type: 'FIRST_DRIVIING_CAR',\n url: '/games/FIRST_DRIVIING_CAR/',\n },\n SECOND_DRIVIING_CAR: {\n name: 'ماشین خودران دوم',\n type: 'SECOND_DRIVIING_CAR',\n url: '/games/SECOND_DRIVIING_CAR/',\n },\n GRID: {\n name: 'شبکه نقاط',\n type: 'GRID',\n url: '/games/GRID/',\n },\n RENT_ROOM: {\n name: 'اجاره اتاق',\n type: 'RENT_ROOM',\n url: '/games/RENT_ROOM/',\n },\n FIRST_CODING_GAME: {\n name: 'بازی اول کدینگ',\n type: 'FIRST_CODING_GAME',\n url: '/games/FIRST_CODING_GAME/',\n },\n SECOND_CODING_GAME: {\n name: 'بازی دوم کدینگ',\n type: 'SECOND_CODING_GAME',\n url: '/games/SECOND_CODING_GAME/',\n },\n GEOGEBRA: {\n name: 'جئوجبرا',\n type: 'GEOGEBRA',\n url: '/games/GEOGEBRA/',\n },\n STREET_GRAPH: {\n name: 'گراف خیابان',\n type: 'STREET_GRAPH',\n url: '/games/STREET_GRAPH/',\n },\n FREE_FALL: {\n name: 'سقوط آزاد',\n type: 'FREE_FALL',\n url: '/games/FREE_FALL/',\n },\n SPACE_GAME: {\n name: 'نمودار',\n type: 'SPACE_GAME',\n url: '/games/SPACE_GAME/',\n },\n X_QUESTIONS: {\n name: 'چند سوالی',\n type: 'X_QUESTIONS',\n url: '/games/X_QUESTIONS/',\n },\n HASH: {\n name: 'هش',\n type: 'HASH',\n url: '/games/HASH/',\n },\n BLOCK: {\n name: 'بلاک',\n type: 'BLOCK',\n url: '/games/BLOCK/',\n },\n BLOCKCHAIN: {\n name: 'بلاکچین',\n type: 'BLOCKCHAIN',\n url: '/games/BLOCKCHAIN/',\n },\n MESSAGE_GAME: {\n name: 'پیغام بازی',\n type: 'MESSAGE_GAME',\n url: '/games/MESSAGE_GAME/',\n },\n AUCTION_GAME1: {\n name: 'مزایده',\n type: 'AUCTION_GAME1',\n url: '/games/AUCTION_GAME1/',\n },\n AUCTION_GAME2: {\n name: 'مزایده',\n type: 'AUCTION_GAME2',\n url: '/games/AUCTION_GAME2/',\n },\n AUCTION_GAME3: {\n name: 'مزایده',\n type: 'AUCTION_GAME3',\n url: '/games/AUCTION_GAME3/',\n },\n AUCTION_GAME4: {\n name: 'مزایده',\n type: 'AUCTION_GAME4',\n url: '/games/AUCTION_GAME4/',\n },\n};\n","export const WRONG = 'WRONG';\nexport const CORRECT = 'CORRECT';\nexport const NONE = 'NONE';\n","export const START = 'START';\nexport const GUESSING = 'GUESSING';\nexport const SEE_RESAULT = 'SEE_RESAULT';\n","const widthScale = window.innerWidth / 671;\nconst heightScale = window.innerHeight / 381;\n\nexport const vertexConfig = {\n radius: 30 * widthScale,\n fill: 'black',\n draggable: true,\n};\nexport const edgeConfig = {\n tension: 0,\n stroke: 'red',\n};\n","import _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { Circle, Layer, Line, Stage, Text } from 'react-konva';\nimport gameTypes from '../../containers/games/gameTypes';\nimport { edgeConfig, vertexConfig } from './config';\n\nexport default class GraphViewer extends Component {\n static propTypes = {\n vertices: PropTypes.arrayOf(PropTypes.object).isRequired,\n edges: PropTypes.arrayOf(PropTypes.object).isRequired,\n };\n\n constructor(props) {\n super(props);\n this.edgItems = [];\n this.verticeNames = [];\n this.getEdgeVertices = this.getEdgeVertices.bind(this);\n this.onDragMove = this.onDragMove.bind(this);\n this.onStartEditing = this.onStartEditing.bind(this);\n this.handleTextEdit = this.handleTextEdit.bind(this);\n this.handleTextareaKeyDown = this.handleTextareaKeyDown.bind(this);\n this.onFinishEditing = this.onFinishEditing.bind(this);\n this.handleOutsideClick = this.handleOutsideClick.bind(this);\n\n this.state = {\n editTextValue: 0,\n egdeEditingID: null,\n textEditingType: null,\n };\n }\n\n getEdgeVertices(edge) {\n const from = _.find(this.props.vertices, { id: edge.from });\n const to = _.find(this.props.vertices, { id: edge.to });\n return { from, to };\n }\n\n onDragMove(x, y, id) {\n if (this.verticeNames[id]) {\n this.verticeNames[id].x(x - 30);\n this.verticeNames[id].y(y - 10);\n }\n\n this.props.edges.forEach((edge) => {\n if (edge.from === id) {\n const points = this.edgItems[edge.id].points();\n points[0] = x;\n points[1] = y;\n this.edgItems[edge.id].points(points);\n }\n if (edge.to === id) {\n const points = this.edgItems[edge.id].points();\n points[2] = x;\n points[3] = y;\n this.edgItems[edge.id].points(points);\n }\n });\n }\n\n handleTextEdit(e) {\n this.setState({\n editTextValue: e.target.value,\n });\n }\n\n onFinishEditing() {\n if (!!this.state.egdeEditingID) {\n const edgeEdited = _.find(this.props.edges, {\n id: this.state.egdeEditingID,\n });\n if (!!edgeEdited) {\n if (this.state.textEditingType === 'weight') {\n edgeEdited.weight = this.state.editTextValue;\n } else {\n edgeEdited.b += parseInt(this.state.editTextValue);\n }\n this.props.onValueChange();\n }\n this.setState({ egdeEditingID: null });\n }\n\n window.removeEventListener('click', this.handleOutsideClick);\n }\n\n handleTextareaKeyDown(e) {\n if (e.keyCode === 13) {\n this.onFinishEditing();\n }\n }\n\n handleOutsideClick(e) {\n if (e.target.id !== 'graphTextInput') {\n this.onFinishEditing();\n }\n }\n\n onStartEditing(e, edgeID, value, targetType) {\n this.onFinishEditing();\n this.setState({\n textEditingType: targetType,\n egdeEditingID: edgeID,\n editTextPosition: e.target.getAbsolutePosition(),\n });\n const input = document.getElementById('graphTextInput');\n this.setState({ editTextValue: value });\n input.value = value;\n input.focus();\n setTimeout(() => {\n window.addEventListener('click', this.handleOutsideClick);\n });\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n let EdgeComponent = this.props.EdgeComponent || Line;\n return (\n <>\n \n \n {this.props.edges.map((edge) => {\n const { from, to } = this.getEdgeVertices(edge);\n return (\n <>\n (this.edgItems[edge.id] = edgeItem)}\n points={[\n from.props.x,\n from.props.y,\n to.props.x,\n to.props.y,\n ]}\n textProps={{\n weight: edge.weight,\n a: edge.a,\n b: edge.b,\n capacity: edge.props.capacity,\n filled: edge.filled,\n }}\n gameType={this.props.gameType}\n {...edgeConfig}\n {...edge.props}\n canBeSelected={edge.canBeSelected}\n isSelected={edge.isSelected}\n isInput={edge.isInput}\n hasChanged={edge.hasChanged}\n lastMovPos={edge.lastMovPos}\n onTextDoubleClick={this.onStartEditing}\n onClick={() =>\n this.props.onEdgeSelect(edge.id, edge.isSelected)\n }\n onPositiveClick={this.props.onPositiveClick}\n onNegativeClick={this.props.onNegativeClick}\n />\n >\n );\n })}\n {this.props.vertices.map((vertex) => {\n return (\n <>\n \n this.props.onSelect(vertex.id, vertex.isSelected)\n }\n onTouchStart={() =>\n this.props.onSelect(vertex.id, vertex.isSelected)\n }\n onDragEnd={(e) =>\n this.props.onDragEnd(\n e.target.x(),\n e.target.y(),\n vertex.id\n )\n }\n onDragMove={(e) =>\n this.onDragMove(e.target.x(), e.target.y(), vertex.id)\n }\n />\n {this.props.gameType === gameTypes.PIPELINE_GRAPH.type ||\n this.props.gameType === gameTypes.DORM_GAME.type ? (\n (this.verticeNames[vertex.id] = name)}\n align=\"center\"\n verticalAlign=\"middle\"\n text={vertex.props.name}\n stroke=\"white\"\n fontSize={15}\n strokeWidth={1}\n />\n ) : (\n <>>\n )}\n >\n );\n })}\n \n \n {this.state.egdeEditingID ? (\n \n ) : (\n ''\n )}\n >\n );\n }\n}\n","import React from 'react';\nimport { Image } from 'react-konva';\n\nexport default class URLImage extends React.Component {\n state = {\n image: null,\n width: null,\n height: null,\n };\n componentDidMount() {\n this.loadImage();\n }\n componentDidUpdate(oldProps) {\n if (oldProps.src !== this.props.src) {\n this.loadImage();\n }\n }\n componentWillUnmount() {\n this.image.removeEventListener('load', this.handleLoad);\n }\n toDataURL = (url) =>\n fetch(url)\n .then((response) => response.blob())\n .then(\n (blob) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n })\n );\n loadImage() {\n this.image = new window.Image();\n this.toDataURL(this.props.src).then((dataUrl) => {\n this.image.src = dataUrl;\n this.image.addEventListener('load', this.handleLoad);\n });\n }\n handleLoad = () => {\n this.image.removeEventListener('load', this.handleLoad);\n this.setState({\n image: this.image,\n width: this.image.naturalWidth,\n height: this.image.naturalHeight,\n });\n };\n\n render() {\n return (\n {\n this.konvaNode = node;\n }}\n offsetX={\n this.props.offsetX && !this.props.dontMultiply\n ? this.props.offsetX * this.state.width\n : this.props.offsetX\n }\n offsetY={\n this.props.offsetY && !this.props.dontMultiply\n ? this.props.offsetY * this.state.height\n : this.props.offsetY\n }\n />\n );\n }\n}\n","import React, { Component } from 'react';\nimport { Circle, Group, Line, Rect, Text } from 'react-konva';\nimport gameTypes from '../../../containers/games/gameTypes.js';\nimport URLImage from '../URLImage/URLImage.js';\n\nexport default class KonvaStreet extends Component {\n points(points) {\n const heightScale = window.innerHeight / 381;\n\n let res;\n if (!!points) {\n this.firstLine.points(points);\n res = this.secondLine.points(points);\n this.group.setAbsolutePosition({\n x: (points[0] + points[2]) / 2,\n y: (points[1] + points[3]) / 2 - 60 * heightScale,\n });\n let angle = this.calcArrowRotation(points);\n this.arrow.konvaNode.rotation(angle);\n this.arrow.konvaNode.x((this.props.points[0] + this.props.points[2]) / 2);\n this.arrow.konvaNode.y((this.props.points[1] + this.props.points[3]) / 2);\n } else {\n res = this.secondLine.points();\n }\n this.firstLine.getLayer().batchDraw();\n return res;\n }\n\n calcArrowRotation(points) {\n let deltaX = points[1] - points[3];\n let deltaY = points[0] - points[2];\n\n var angle = (Math.atan(Math.abs(deltaX / deltaY)) * 180) / Math.PI;\n if (deltaX <= 0 && deltaY <= 0) {\n angle += 90;\n } else if (deltaX < 0 && deltaY > 0) {\n angle = -1 * angle - 90;\n } else if (deltaX > 0 && deltaY < 0) {\n angle = 90 - angle;\n } else if (deltaX >= 0 && deltaY >= 0) {\n angle = angle - 90;\n }\n return angle;\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n return (\n <>\n (this.firstLine = line)}\n shadowBlur={this.props.isSelected ? 20 : 0}\n />\n (this.secondLine = line)}\n stroke=\"#ccc\"\n dash={[25 * widthScale, 10 * widthScale]}\n />\n {\n this.arrow = node;\n }}\n />\n (this.group = group)}\n x={(this.props.points[0] + this.props.points[2]) / 2}\n y={\n (this.props.points[1] + this.props.points[3]) / 2 - 60 * heightScale\n }\n >\n \n \n \n \n\n (this.formula = formula)}\n onClick={(e) => {\n if (this.props.gameType === gameTypes.THIRD_TRAFFIC_GAME.type) {\n this.props.onTextDoubleClick(\n e,\n this.props.id,\n this.props.weight,\n 'traffic'\n );\n }\n }}\n onTouchEnd={(e) => {\n this.props.onTextDoubleClick(\n e,\n this.props.id,\n this.props.weight,\n 'traffic'\n );\n }}\n >\n \n = 0\n ? this.props.textProps.a === 0\n ? ''\n : this.props.textProps.b === 0 ? '' : '+'\n : '') +\n (this.props.textProps.b === 0\n ? this.props.textProps.a === 0\n ? '0'\n : ''\n : this.props.textProps.b)\n }\n fill=\"black\"\n fontSize={widthScale < 0.7 ? 10 : 15}\n />\n \n\n (this.weightText = text)}\n x={-30 * widthScale}\n y={-8 * heightScale}\n width={60 * widthScale}\n text={this.props.textProps.weight ? this.props.textProps.weight : 0}\n fontSize={widthScale < 0.7 ? 14 : 20}\n fill=\"black\"\n align=\"center\"\n onClick={(e) => {\n this.props.onTextDoubleClick(\n e,\n this.props.id,\n this.props.weight,\n 'weight'\n );\n }}\n onTouchEnd={(e) => {\n this.props.onTextDoubleClick(\n e,\n this.props.id,\n this.props.weight,\n 'weight'\n );\n }}\n />\n \n >\n );\n }\n}\n","import _ from 'lodash';\nimport React, { Component } from 'react';\nimport { Label } from 'semantic-ui-react';\nimport GraphViewer from '../../components/Graph/GraphViewer';\nimport KonvaStreet from '../../components/konva/KonvaStreet/KonvaStreet';\nimport './style.css';\n\nclass Graph extends Component {\n constructor(props) {\n super(props);\n\n this.onDragEnd = this.onDragEnd.bind(this);\n this.onSelect = this.onSelect.bind(this);\n this.deleteNode = this.deleteNode.bind(this);\n this.onEdgeSelect = this.onEdgeSelect.bind(this);\n }\n\n onDragEnd(x, y, id) {\n this.props.updateVertex(\n id,\n {\n x,\n y,\n },\n this.props.gameType\n );\n }\n\n onSelect(id, isSelected) {\n // if (isSelected) {\n // this.props.deselectVertex(id, this.props.gameType);\n // } else {\n // this.props.selectVertex(id, this.props.gameType);\n // this.props.vertices.forEach((vertex) => {\n // if (vertex.id !== id && vertex.isSelected) {\n // if (!this.edgeExists(id, vertex.id)) {\n // this.props.createEdge(id, vertex.id, this.props.gameType, {});\n // }\n // this.props.deselectVertex(id, this.props.gameType);\n // this.props.deselectVertex(vertex.id, this.props.gameType);\n // }\n // });\n // }\n }\n\n edgeExists(fromID, toID) {\n var res = false;\n this.props.edges.forEach((edge) => {\n if (\n (edge.from === fromID && edge.to === toID) ||\n (edge.from === toID && edge.to === fromID)\n ) {\n res = true;\n }\n });\n return res;\n }\n\n onEdgeSelect(id, isSelected) {\n if (isSelected) {\n this.props.deselectEdge(id, this.props.gameType);\n } else {\n this.props.selectEdge(id, this.props.gameType);\n }\n }\n\n deleteEdge(id) {\n let newEdges = this.props.edges.filter((obj) => {\n return obj.fromNodeID !== id && obj.toNodeID !== id;\n });\n\n this.setState({ edges: newEdges });\n }\n\n deleteNode(id) {\n let newNodes = this.state.nodes.filter((obj) => {\n return obj.id !== id;\n });\n\n //delet edges related to this node\n let newEdges = this.state.edges.filter((obj) => {\n return obj.fromNodeID !== id && obj.toNodeID !== id;\n });\n\n this.setState({ nodes: newNodes, edges: newEdges });\n }\n\n onFormulaChange(edgeID, newB) {\n const edge = _.find(this.props.edges, { id: edgeID });\n\n this.props.updateEdge(\n edgeID,\n {\n b: newB + edge.b,\n },\n this.props.gameType\n );\n }\n\n onValueChange() {\n let sum = 0;\n this.props.edges.forEach((edge) => {\n sum += parseInt(edge.weight) * (parseInt(edge.weight) * edge.a + edge.b);\n });\n\n this.props.updateCost(sum, this.props.gameType);\n }\n\n onUpdateEdge(id, props) {\n this.props.updateEdge(id, props, this.props.gameType);\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n return (\n <>\n 0.8 ? 'small' : 'mini'}\n style={{\n top: '10px' * widthScale,\n left: '10px' * heightScale,\n position: 'absolute',\n marginLeft: '30px',\n }}\n >\n مجموع هزینهی تمام یال ها :\n {this.props.wholeCost}\n \n \n >\n );\n }\n}\n\nexport default Graph;\n","import React, { Component } from 'react';\n\nclass GeoGebra extends Component {\n componentDidMount() {\n const script = document.createElement('script');\n\n script.src = 'https://cdn.geogebra.org/apps/deployggb.js';\n\n document.body.appendChild(script);\n script.onload = () => {\n // eslint-disable-next-line no-undef\n const applet = new GGBApplet(\n {\n id: 'ggbApplet',\n width: 800,\n height: 600,\n showToolBar: true,\n borderColor: null,\n showMenuBar: true,\n allowStyleBar: true,\n showAlgebraInput: true,\n enableLabelDrags: false,\n enableShiftDragZoom: true,\n capturingThreshold: null,\n showToolBarHelp: false,\n errorDialogsActive: true,\n showTutorialLink: true,\n showLogging: true,\n useBrowserForJS: false,\n perspective: '5',\n },\n '5.0',\n 'applet_container'\n );\n\n window.onload = function () {\n applet.inject('applet_container');\n };\n };\n }\n render() {\n return ;\n }\n}\nexport default GeoGebra;\n","import React, { Component } from 'react';\nimport { Icon } from 'semantic-ui-react';\nimport styled from 'styled-components';\n\nconst ListItem = styled.li`\n display: inline-block;\n`;\n\nclass CodingGameNav extends Component {\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default CodingGameNav;\n","import React, { Component } from 'react';\nimport { Circle, Group } from 'react-konva';\nimport * as shapeTypes from '../../containers/games/CodingGame/ShapeTypes';\n\nclass GameCircle extends Component {\n render() {\n return (\n <>\n {\n this.props.onDblClick(e, this.props.id);\n }}\n onDragEnd={(e) => {\n this.props.onDragEnd(this.props.id, e, shapeTypes.CIRCLE);\n }}\n onClick={() => {\n this.props.onClick(this.props.id, this.props.isSelected);\n }}\n onTouchStart={() => {\n this.props.onClick(this.props.id, this.props.isSelected);\n }}\n onDblTap={(e) => {\n this.props.onDblClick(e, this.props.id);\n }}\n >\n \n \n \n >\n );\n }\n}\n\nexport default GameCircle;\n","import React, { Component } from 'react';\nimport { Group, Rect, Circle } from 'react-konva';\nimport * as shapeTypes from '../../containers/games/CodingGame/ShapeTypes';\n\nclass GameSquare extends Component {\n render() {\n return (\n {\n this.props.onDblClick(e, this.props.id);\n }}\n onClick={() => {\n this.props.onClick(this.props.id, this.props.isSelected);\n }}\n onDragEnd={(e) => {\n this.props.onDragEnd(this.props.id, e, shapeTypes.SQUARE);\n }}\n\n onTouchStart={() => {\n this.props.onClick(this.props.id, this.props.isSelected);\n }}\n onDblTap={(e) => {\n this.props.onDblClick(e, this.props.id);\n }}\n draggable\n >\n \n \n \n );\n }\n}\n\nexport default GameSquare;\n","export const dotConfig = {\n fill: 'black',\n radius: 3,\n}\n","import _ from 'lodash';\nimport React, { Component } from 'react';\nimport { Circle, Group, Layer, Line, Stage } from 'react-konva';\nimport { connect } from 'react-redux';\nimport { Label } from 'semantic-ui-react';\nimport CodingGameNav from '../../../components/codingGame/CodingGameNav';\nimport GameCircle from '../../../components/codingGame/GameCircle';\nimport GameSquare from '../../../components/codingGame/GameSquare';\nimport { clearShape, createCircle, createDot, createEdge, createSquare, deselectDot, selectDot, updateCircle, updateDistance, updateEdgee, updateSquare } from '../../../redux/actions/codingGame';\nimport { dotConfig } from './dotConfig';\nimport * as ShapeTypes from './ShapeTypes';\n\nclass CodingGame extends Component {\n constructor(props) {\n super(props);\n this.onDotClick = this.onDotClick.bind(this);\n this.onCircleIconClick = this.onCircleIconClick.bind(this);\n this.onDragEnd = this.onDragEnd.bind(this);\n this.handleTextEdit = this.handleTextEdit.bind(this);\n this.handleTextareaKeyDown = this.handleTextareaKeyDown.bind(this);\n this.finishEditing = this.finishEditing.bind(this);\n this.onSquareIconClick = this.onSquareIconClick.bind(this);\n this.selectCircle = this.selectCircle.bind(this);\n this.selectSquare = this.selectSquare.bind(this);\n this.onTrashIconClick = this.onTrashIconClick.bind(this);\n this.onShapeDblClick = this.onShapeDblClick.bind(this);\n this.getEdgeVertices = this.getEdgeDots.bind(this);\n this.selectEdge = this.selectEdge.bind(this);\n this.edgeExists = this.edgeExists.bind(this);\n this.getDistance = this.getDistance.bind(this);\n\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n this.state = {\n surroundingWidth: 300 * widthScale,\n surroundingHeight: 300 * heightScale,\n shapeEditingID: null,\n shapeEditingType: null,\n selectedShapeID: null,\n sizeValue: '',\n editTextValue: null,\n editTextPosition: { x: null, y: null },\n height: window.innerHeight,\n width: window.innerWidth,\n\n startX: props.game === 1 ? 250 * widthScale : 180 * widthScale,\n };\n }\n\n componentDidMount() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n this.props.createDot({ x: 25 * widthScale, y: 25 * heightScale });\n this.props.createDot({ x: 225 * widthScale, y: 50 * heightScale });\n this.props.createDot({ x: 175 * widthScale, y: 125 * heightScale });\n this.props.createDot({ x: 50 * widthScale, y: 150 * heightScale });\n this.props.createDot({ x: 75 * widthScale, y: 250 * heightScale });\n this.props.createDot({ x: 175 * widthScale, y: 250 * heightScale });\n this.props.createDot({ x: 275 * widthScale, y: 175 * heightScale });\n\n window.addEventListener('resize', this.resizeListener);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.resizeListener);\n }\n\n resizeListener = () => {\n this.setState({ width: window.innerWidth, height: window.innerHeight });\n };\n\n edgeExists(from, to) {\n var res = false;\n this.props.edges.forEach((edge) => {\n if (\n (edge.props.from === from && edge.props.to === to) ||\n (edge.props.from === to && edge.props.to === from)\n ) {\n res = true;\n }\n });\n return res;\n }\n\n getEdgeDots(edge) {\n const from = _.find(this.props.dots, { id: edge.props.from });\n const to = _.find(this.props.dots, { id: edge.props.to });\n return { from, to };\n }\n\n getDistance(first, second) {\n const firstNode = _.find(this.props.dots, { id: first });\n const secondnode = _.find(this.props.dots, { id: second });\n\n let distance = Math.sqrt(\n Math.pow(Math.abs(firstNode.props.x - secondnode.props.x), 2) +\n Math.pow(Math.abs(firstNode.props.y - secondnode.props.y), 2)\n );\n return distance;\n }\n\n onDotClick(id, isSelected) {\n if (!isSelected) {\n this.props.selectDot(id);\n this.props.dots.forEach((dot) => {\n if (dot.id !== id && dot.isSelected) {\n if (!this.edgeExists(id, dot.id)) {\n this.props.updateDistance(\n Math.round(\n (this.getDistance(id, dot.id) / 25 + Number.EPSILON) * 100\n ) / 100\n );\n // this.setState({\n // sizeValue:\n // Math.round(\n // (this.getDistance(id, dot.id) / 25 + Number.EPSILON) * 100\n // ) / 100,\n // });\n }\n this.props.deselectDot(id);\n this.props.deselectDot(dot.id);\n }\n });\n } else {\n this.props.deselectDot(id);\n }\n }\n\n onDragEnd(id, e, shapeType) {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n let startX = this.state.startX;\n\n var toBeAdd = 0;\n if (shapeType === ShapeTypes.SQUARE) {\n const square = _.find(this.props.squares, { id: id });\n toBeAdd = square.props.side / 2;\n }\n\n const dot = _.find(this.props.dots, function (myDot) {\n return (\n Math.abs(myDot.props.x + startX - toBeAdd - e.target.x()) <\n 20 * widthScale &&\n Math.abs(myDot.props.y + 30 * widthScale - toBeAdd - e.target.y()) <\n 20 * widthScale\n );\n });\n\n let newX = dot ? dot.props.x + startX - toBeAdd : e.target.x();\n let newY = dot ? dot.props.y + 30 * widthScale - toBeAdd : e.target.y();\n\n this.setState({ editTextPosition: { x: newX, y: newY } });\n if (shapeType === ShapeTypes.CIRCLE) {\n this.props.updateCircle(id, { x: newX, y: newY });\n } else if (shapeType === ShapeTypes.SQUARE) {\n this.props.updateSquare(id, { x: newX, y: newY });\n }\n }\n\n onCircleIconClick() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n this.props.createCircle({\n x: 55 * widthScale,\n y: 125 * heightScale,\n radius: 30 * widthScale,\n });\n }\n\n onSquareIconClick() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n this.props.createSquare({\n x: 30 * widthScale,\n y: 100 * heightScale,\n side: 50 * widthScale,\n });\n }\n\n onTrashIconClick() {\n this.props.circles.forEach((circle) => {\n if (circle.props.isSelected) {\n this.props.clearShape(circle.id, ShapeTypes.CIRCLE);\n }\n });\n this.props.squares.forEach((square) => {\n if (square.props.isSelected) {\n this.props.clearShape(square.id, ShapeTypes.SQUARE);\n }\n });\n this.props.edges.forEach((edge) => {\n if (edge.props.isSelected) {\n this.props.clearShape(edge.id, ShapeTypes.EDGE);\n }\n });\n }\n\n onShapeDblClick(e, id) {\n var shape = _.find(this.props.circles, { id: id });\n if (!shape) {\n shape = _.find(this.props.squares, { id: id });\n this.setState({ shapeEditingType: ShapeTypes.SQUARE });\n } else {\n this.setState({ shapeEditingType: ShapeTypes.CIRCLE });\n }\n this.setState({\n shapeEditingID: id,\n editTextPosition: { x: shape.props.x, y: shape.props.y },\n });\n }\n\n handleTextEdit(e) {\n this.setState({ editTextValue: e.target.value });\n }\n\n finishEditing() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n if (this.state.shapeEditingType === ShapeTypes.CIRCLE) {\n this.props.updateCircle(this.state.shapeEditingID, {\n radius: this.state.editTextValue * widthScale,\n });\n } else if (this.state.shapeEditingType === ShapeTypes.SQUARE) {\n this.props.updateSquare(this.state.shapeEditingID, {\n side: this.state.editTextValue,\n });\n }\n this.setState({ shapeEditingID: null, shapeEditingType: null });\n }\n\n handleTextareaKeyDown(e) {\n if (e.keyCode === 13) {\n this.finishEditing();\n }\n }\n\n selectEdge(id, isSelected) {\n if (isSelected) {\n this.props.updateEdgee(id, { isSelected: false });\n } else {\n this.props.updateEdgee(id, { isSelected: true });\n }\n }\n\n selectCircle(id, isSelected) {\n if (!isSelected) {\n this.props.updateCircle(id, { isSelected: true });\n } else {\n this.props.updateCircle(id, { isSelected: false });\n }\n }\n\n selectSquare(id, isSelected) {\n if (!isSelected) {\n this.props.updateSquare(id, { isSelected: true });\n } else {\n this.props.updateSquare(id, { isSelected: false });\n }\n }\n\n render() {\n let ContainerComponent = this.props.container;\n\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n return (\n <>\n \n \n \n \n {this.props.edges.map((edge) => {\n const { from, to } = this.getEdgeDots(edge);\n return (\n {\n this.selectEdge(edge.id, edge.props.isSelected);\n }}\n onTouchStart={() => {\n this.selectEdge(edge.id, edge.props.isSelected);\n }}\n />\n );\n })}\n {this.props.game === 1 ? (\n this.props.dots.map((dot) => {\n return (\n {\n this.onDotClick(dot.id, dot.isSelected);\n }}\n onClick={() => {\n this.onDotClick(dot.id, dot.isSelected);\n }}\n />\n );\n })\n ) : (\n <>>\n )}\n \n {this.props.circles.map((circle) => {\n return (\n \n );\n })}\n {this.props.squares.map((square) => {\n return (\n \n );\n })}\n \n \n \n {this.props.game === 1 ? (\n \n فاصله :{this.props.distance}\n \n ) : (\n <>>\n )}\n {this.state.shapeEditingID ? (\n \n ) : (\n ''\n )}\n >\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n dots: state.codingGame.dots,\n circles: state.codingGame.circles,\n squares: state.codingGame.squares,\n edges: state.codingGame.edges,\n distance: state.codingGame.distance,\n});\nexport default connect(mapStateToProps, {\n createDot,\n selectDot,\n deselectDot,\n createCircle,\n updateCircle,\n createSquare,\n updateSquare,\n clearShape,\n updateEdgee,\n createEdge,\n updateDistance,\n})(CodingGame);\n","import makeId from '../../utils/makeId';\nimport * as actionTypes from './actionTypes';\n\nexport const createDot = (props) => ({\n type: actionTypes.CREATE_DOT,\n payload: { id: makeId(), props },\n});\n\nexport const selectDot = (id) => ({\n type: actionTypes.SELECT_DOT,\n payload: {\n id,\n },\n});\n\nexport const deselectDot = (id) => ({\n type: actionTypes.DESELECT_DOT,\n payload: {\n id,\n },\n});\n\nexport const createCircle = (props) => ({\n type: actionTypes.CREATE_CIRCLE,\n payload: {\n id: makeId(),\n props,\n },\n});\n\nexport const updateCircle = (id, props) => ({\n type: actionTypes.UPDATE_CIRCLE,\n payload: {\n id,\n props,\n },\n});\n\nexport const createSquare = (props) => ({\n type: actionTypes.CREATE_SQUARE,\n payload: {\n id: makeId(),\n props,\n },\n});\n\nexport const updateSquare = (id, props) => ({\n type: actionTypes.UPDATE_SQUARE,\n payload: {\n id,\n props,\n },\n});\n\nexport const circleMode = () => ({\n type: actionTypes.CIRCLE_MODE,\n payload: {},\n});\n\nexport const squareMode = () => ({\n type: actionTypes.SQUARE_MODE,\n payload: {},\n});\n\nexport const triangleMode = () => ({\n type: actionTypes.TRIANGLE_MODE,\n payload: {},\n});\n\nexport const clearShape = (id, shape) => ({\n type: actionTypes.CLEAR_SHAPE,\n payload: {\n id,\n shape,\n },\n});\n\nexport const createEdge = (props) => ({\n type: actionTypes.ADD_EDGE,\n payload: {\n id: makeId(),\n props,\n },\n});\n\nexport const updateEdgee = (id, props) => ({\n type: actionTypes.UPDATE_EDGEE,\n payload: {\n id,\n props,\n }\n\n})\n\nexport const updateDistance = (distance) => ({\n type: actionTypes.UPDATE_DISTANCE,\n payload: {distance}\n})\n","import React from 'react';\nimport { Rect } from 'react-konva';\nimport CodingGame from '../CodingGame/CodingGame';\n\nconst Rectangle = (props) => {\n return ;\n};\n\nconst FirstCodingGame = () => {\n return ;\n};\n\nexport default FirstCodingGame;\n","import React from 'react';\nimport { Line } from 'react-konva';\nimport CodingGame from '../CodingGame/CodingGame';\n\nconst CurvedLine = (props) => {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n return (\n \n );\n};\n\nconst SecondCodingGame = () => {\n return ;\n};\n\nexport default SecondCodingGame;\n","import React, { Component } from 'react';\nimport { Circle, Group, Layer, Line, Stage } from 'react-konva';\nimport makeId from '../../utils/makeId';\nimport _ from 'lodash';\n\nimport {\n insertDots,\n insertLines,\n resetGrid,\n updateDot,\n updateLine,\n} from '../../redux/actions/grid';\nimport { connect } from 'react-redux';\nimport { Icon } from 'semantic-ui-react';\n\nconst getInitLines = (firstX, firstY) => {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n let lines = [];\n let tempY = firstY;\n let x;\n let y;\n let length = 23 * heightScale;\n let id;\n\n for (let i = 0; i < 15; i++) {\n x = firstX;\n y = tempY;\n for (let i = 0; i < 15; i++) {\n id = makeId();\n lines.push({\n id: id,\n x: x,\n y: y,\n points: [0, 0, length, 0],\n props: {\n relatedNodes: [],\n },\n });\n x += length;\n }\n x = firstX;\n y = tempY;\n for (let i = 0; i < 16; i++) {\n id = makeId();\n lines.push({\n id: id,\n x: x,\n y: y,\n points: [0, 0, 0, length],\n props: {\n relatedNodes: [],\n },\n });\n x += length;\n }\n tempY += length;\n }\n\n x = firstX;\n y = tempY;\n for (let i = 0; i < 15; i++) {\n id = makeId();\n lines.push({\n id: id,\n x: x,\n y: y,\n points: [0, 0, length, 0],\n props: {\n relatedNodes: [],\n },\n });\n x += length;\n }\n\n return lines;\n};\n\nconst getInitDots = (firstX, firstY) => {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n let dots = [];\n let x;\n let y;\n let tempY = firstY;\n let length = 23 * heightScale;\n let id;\n\n for (let i = 0; i < 16; i++) {\n x = firstX;\n y = tempY;\n for (let i = 0; i < 16; i++) {\n id = makeId();\n dots.push({\n id: id,\n x: x,\n y: y,\n props: {\n relatedNodes: [],\n },\n });\n x += length;\n }\n tempY += length;\n }\n\n return dots;\n};\n\nclass GridComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n lines: [],\n dots: [],\n height: window.innerHeight,\n width: window.innerWidth,\n };\n this.onDotClick = this.onDotClick.bind(this);\n this.updateCircle = this.updateGrid.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n componentDidMount() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n const dots = getInitDots(170 * widthScale, 10 * heightScale);\n const lines = getInitLines(170 * widthScale, 10 * heightScale);\n\n this.props.insertDots(dots);\n this.props.insertLines(lines);\n window.addEventListener('resize', this.resizeListener);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.resizeListener);\n }\n\n resizeListener = () => {\n this.setState({ width: window.innerWidth, height: window.innerHeight });\n };\n\n updateGrid(id) {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n const dot = _.find(this.props.dots, { id: id });\n let dotID = dot.id;\n let length = 23 * heightScale;\n let value = true;\n\n if (\n dot.props.relatedNodes.length === 1 &&\n dot.props.relatedNodes[0] === dot.id\n ) {\n return;\n }\n\n let precision = 0.005;\n\n const dotsConnected = _.filter(this.props.dots, function (other) {\n return (\n (Math.abs(other.x - dot.x) < precision &&\n (Math.abs(other.y - dot.y + length) < precision ||\n Math.abs(other.y - dot.y - length) < precision)) ||\n (Math.abs(other.y - dot.y) < precision &&\n (Math.abs(other.x - dot.x + length) < precision ||\n Math.abs(other.x - dot.x - length) < precision))\n );\n });\n\n const linesConnected = _.filter(this.props.lines, function (line) {\n return (\n (Math.abs(line.x - dot.x) < precision &&\n Math.abs(line.y - dot.y) < precision) ||\n (Math.abs(line.x - dot.x + length) < precision &&\n Math.abs(line.y - dot.y) < precision &&\n line.points[2] !== 0) ||\n (Math.abs(line.x - dot.x) < precision &&\n Math.abs(line.y - dot.y + length) < precision &&\n line.points[3] !== 0)\n );\n });\n\n let newProps = this.returnNewProps(dot, value, dotID, 'center');\n this.props.updateDot(dot.id, newProps);\n\n dotsConnected.forEach((dot) => {\n let newProps = this.returnNewProps(dot, value, dotID, 'other');\n this.props.updateDot(dot.id, newProps);\n });\n\n linesConnected.forEach((line) => {\n let newProps = this.returnNewProps(line, value, dotID, 'other');\n this.props.updateLine(line.id, newProps);\n });\n }\n\n returnNewProps(node, value, dotID, situation) {\n let newProps;\n\n let newRelateds = value\n ? [...node.props.relatedNodes, dotID]\n : this.removeFromArray(node.props.relatedNodes, dotID);\n\n let color =\n newRelateds.length > 1\n ? 'red'\n : situation === 'center'\n ? 'green'\n : '#edd224';\n\n if (!newRelateds.length) {\n newProps = {\n isSelected: value,\n relatedNodes: newRelateds,\n color,\n };\n } else {\n newProps = {\n isSelected: true,\n relatedNodes: newRelateds,\n color,\n };\n }\n return newProps;\n }\n\n removeFromArray(array, id) {\n return _.remove(array, (member) => {\n return member !== id;\n });\n }\n\n onDotClick(id) {\n this.updateGrid(id);\n }\n\n reset() {\n this.props.resetGrid();\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n return (\n <>\n \n \n \n {this.props.lines.map((line) => {\n return (\n \n );\n })}\n {this.props.dots.map((dot) => {\n return (\n {\n this.onDotClick(e.target.attrs.id);\n }}\n onTouchStart={(e) => {\n this.onDotClick(e.target.attrs.id);\n }}\n />\n );\n })}\n \n \n \n \n >\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n dots: state.grid.gridDots,\n lines: state.grid.lines,\n});\nexport default connect(mapStateToProps, {\n insertDots,\n insertLines,\n updateDot,\n updateLine,\n resetGrid,\n})(GridComponent);\n","import * as actionTypes from './actionTypes';\n\nexport const insertDots = (dots) => ({\n type: actionTypes.INSERT_DOTS,\n payload: { dots },\n});\n\nexport const insertLines = (lines) => ({\n type: actionTypes.INSERT_LINES,\n payload: { lines },\n});\n\nexport const updateDot = (id, props) => ({\n type: actionTypes.UPDATE_DOT,\n payload: { id, props },\n});\n\nexport const updateLine = (id, props) => ({\n type: actionTypes.UPDATE_LINE,\n payload: { id, props },\n});\n\nexport const resetGrid = () => ({\n type: actionTypes.RESET_GRID,\n payload: {}\n})","import React, { Component } from 'react';\nimport GridComponent from '../../../components/codingGrid/Grid.js';\n\nclass CodingGrid extends Component {\n render() {\n return ;\n }\n}\n\nexport default CodingGrid;\n","import React, { Component } from 'react';\nimport { Rect, Group, Text } from 'react-konva';\nimport * as situations from './situations';\n\nclass Box extends Component {\n render() {\n return (\n (this.box = box)}\n draggable={\n !this.props.mostLeftBox &&\n this.props.situation === situations.IN_SHELL\n ? false\n : this.props.situation !== situations.IN_SHELL\n ? this.props.draggableBox\n : true\n }\n onDragEnd={(e) => {\n this.props.onDragEnd(this.props.id, e);\n }}\n dragBoundFunc={(pos) => {\n return this.props.situation !== situations.IN_SHELL\n ? {\n x: pos.x,\n y: this.box.getAbsolutePosition().y,\n }\n : pos;\n }}\n >\n \n \n \n );\n }\n}\n\nexport default Box;\n","import React, { Component } from 'react';\nimport { Group, Rect } from 'react-konva';\nimport Box from './Box';\nimport * as situations from './situations';\n\nconst FirstContainer = (props) => {\n let x = props.boxX;\n let counter = props.boxCounter;\n return (\n \n \n {props.boxes\n .filter((box) => {\n return box.props.situation === situations.IN_SHELL;\n })\n .map((box) => {\n x += props.boxWidth + 2;\n counter++;\n return (\n \n );\n })}\n \n );\n};\n\nexport default FirstContainer;\n","import React, { Component } from 'react';\nimport { Group, Rect } from 'react-konva';\nimport Box from './Box';\nimport * as situations from './situations';\n\nconst SecondContainer = (props) => {\n return (\n \n \n {props.box !== null ? (\n \n ) : (\n <>>\n )}\n \n );\n};\n\nexport default SecondContainer;\n","import React, { Component } from 'react';\nimport { Rect, Group } from 'react-konva';\nimport Box from './Box';\n\nclass Machine extends Component {\n render() {\n let count = -1 * this.props.boxWidth + 3;\n return (\n (this.machine1 = machine)}\n >\n \n {this.props.boxes.map((box) => {\n count += this.props.boxWidth + 2;\n return (\n \n );\n })}\n \n );\n }\n}\n\nexport default Machine;\n","import _ from 'lodash';\nimport React, { Component } from 'react';\nimport { Layer, Stage } from 'react-konva';\nimport { Button, Grid, Icon, Table, Image } from 'semantic-ui-react';\nimport Machine from './Machine';\nimport * as situations from './situations';\nimport * as boxesModes from '../../redux/reducers/boxesModes';\n\nclass SimulatorView extends Component {\n constructor(props) {\n super(props);\n\n this.onBoxDragEnd = this.onBoxDragEnd.bind(this);\n this.onFinishButtonClick = this.onFinishButtonClick.bind(this);\n this.onNextRoundClick = this.onNextRoundClick.bind(this);\n\n this.state = {\n round: 1,\n finished: false,\n check: null,\n height:\n (props.stageWidth / 20) *\n (this.props.boxes.length > 8 ? 9 : this.props.boxes.length) +\n 30,\n width: props.stageWidth / 20 + 5,\n machines: [\n {\n x: props.stageWidth / 5,\n y: 5,\n },\n {\n x: props.stageWidth / 5 + this.props.stageWidth / 20 + 15,\n y: 5,\n },\n {\n x: props.stageWidth / 5 + (this.props.stageWidth * 2) / 20 + 30,\n y: 5,\n },\n ],\n mostLeftBox: null,\n };\n }\n\n onBoxDragEnd(id, e) {\n const box = _.find(this.props.boxes, { id: id });\n\n let machineIndex;\n\n let x = e.target._lastPos.x;\n let y = e.target._lastPos.y;\n\n let leastY = this.state.machines[0].y;\n\n if (leastY < y && y < leastY + this.state.height) {\n if (\n this.state.machines[0].x < x &&\n x < this.state.machines[0].x + this.state.width\n ) {\n machineIndex = 0;\n } else if (\n this.state.machines[1].x < x &&\n x < this.state.machines[1].x + this.state.width\n ) {\n machineIndex = 1;\n } else if (\n this.state.machines[2].x < x &&\n x < this.state.machines[2].x + this.state.width\n ) {\n machineIndex = 2;\n }\n }\n\n if (machineIndex !== undefined) {\n let boxSituation;\n switch (machineIndex) {\n case 0:\n boxSituation = situations.IN_MACHINE_1;\n break;\n case 1:\n boxSituation = situations.IN_MACHINE_2;\n break;\n case 2:\n boxSituation = situations.IN_MACHINE_3;\n break;\n }\n this.props.updateBox(box.id, {\n situation: boxSituation,\n });\n\n const nextBox = _.find(this.props.boxes, function (box) {\n return box.props.situation === situations.IN_SHELL;\n });\n\n if (nextBox) {\n this.setState({ mostLeftBox: nextBox.id });\n }\n } else {\n this.setState({ mostLeftBox: box.id });\n this.props.deleteBox(box.id);\n this.props.createBox(box.id, {\n x: box.props.x,\n y: box.props.y,\n label: box.props.label,\n situation: box.props.situation,\n });\n }\n }\n\n onFinishButtonClick() {\n var boxes = this.props.boxes.filter((box) => {\n return box.props.situation === situations.IN_MACHINE_1;\n });\n let sum1 = 0;\n boxes.forEach((box) => {\n sum1 += parseInt(box.props.label);\n });\n\n var boxes = this.props.boxes.filter((box) => {\n return box.props.situation === situations.IN_MACHINE_2;\n });\n let sum2 = 0;\n boxes.forEach((box) => {\n sum2 += parseInt(box.props.label);\n });\n\n var boxes = this.props.boxes.filter((box) => {\n return box.props.situation === situations.IN_MACHINE_3;\n });\n let sum3 = 0;\n boxes.forEach((box) => {\n sum3 += parseInt(box.props.label);\n });\n\n let max = Math.max(sum1, sum2, sum3);\n\n if (this.props.level === 2) {\n this.props.changeTotaltime(max);\n this.setState({ round: this.state.round + 1 });\n this.props.changeMode(boxesModes.CORRECT_ANSWER);\n } else {\n if (max === this.props.optimum) {\n if (this.props.level === 1) {\n this.setState({ finished: true });\n this.props.changeMode(boxesModes.CORRECT_ANSWER);\n }\n } else {\n if (this.props.level === 1 && this.state.round === 1) {\n this.props.changeMode(boxesModes.WRONG_ANSWER);\n alert('هنوز یه فرصت دیگه داری');\n this.setState({ round: 2 });\n } else if (this.props.level === 1 && this.state.round === 2) {\n alert('بازی تمام شد');\n this.setState({ finished: true });\n }\n }\n }\n }\n\n onNextRoundClick() {\n this.props.changeMode(boxesModes.PLAYING);\n if (this.props.level === 2 && this.props.round < 4) {\n this.props.nextRound();\n this.props.changeBoxes();\n this.props.changeMode(boxesModes.PLAYING);\n }\n }\n\n render() {\n let boxWidth = this.props.stageWidth / 20;\n const BoxContainer = this.props.boxContainer;\n let machineIndex = 0;\n let boxX = -1 * boxWidth + 3;\n let boxCounter = 0;\n\n return (\n <>\n \n {this.state.finished && this.props.level === 1 ? (\n \n ) : (\n <>\n \n (this.stage = stage)}\n >\n (this.layer = layer)}>\n {this.state.machines.map((machine) => {\n let machineSituation;\n switch (machineIndex) {\n case 0:\n machineSituation = situations.IN_MACHINE_1;\n break;\n case 1:\n machineSituation = situations.IN_MACHINE_2;\n break;\n case 2:\n machineSituation = situations.IN_MACHINE_3;\n break;\n }\n machineIndex++;\n return (\n 8\n ? 9\n : this.props.boxes.length) +\n 30\n }\n // machineHeight={this.state.height}\n // machineWidth={this.state.width}\n machineWidth={boxWidth + 5}\n draggableBox={\n this.props.level === 1 && !this.state.finished\n }\n boxWidth={boxWidth}\n boxes={this.props.boxes.filter((box) => {\n return box.props.situation === machineSituation;\n })}\n onDragEnd={this.onBoxDragEnd}\n />\n );\n })}\n \n \n \n \n \n \n {\n return box.props.situation === situations.IN_SHELL;\n }).length === 0\n ? ''\n : 'none',\n }}\n >\n \n Finish\n \n {\n return (\n box.props.situation === situations.IN_SHELL\n );\n }).length === 0 &&\n this.props.mode !== boxesModes.PLAYING\n ? false\n : true\n }\n >\n Next Round\n \n \n \n \n {\n return box.props.situation === situations.IN_SHELL;\n }).length === 0 &&\n this.props.mode !== boxesModes.PLAYING &&\n this.props.level === 1\n ? ''\n : 'none',\n }}\n />\n \n \n \n {this.props.mode !== boxesModes.PLAYING &&\n this.props.level === 2 ? (\n \n \n \n optimum\n {this.props.optimum}\n \n \n total time\n {this.props.totalTime}\n \n \n total time/optimum\n \n {Math.round(\n (this.props.optimum / this.props.totalTime) * 100\n ) / 100}\n \n \n \n \n ) : (\n ''\n )}\n \n >\n )}\n \n >\n );\n }\n}\n\nexport default SimulatorView;\n","import * as actionTypes from './actionTypes';\nimport makeId from '../../utils/makeId';\n\nexport const createBox = (id, props) => ({\n type: actionTypes.CREATE_BOX,\n payload: { id: id ? id : makeId(), props },\n});\n\nexport const createMachine = (props) => ({\n type: actionTypes.CREATE_MACHINE,\n payload: { id: makeId(), props },\n});\n\nexport const updateBox = (id, props) => ({\n type: actionTypes.UPDATE_BOX,\n payload: { id, props },\n});\n\nexport const updateMachine = (id, props) => ({\n type: actionTypes.UPDATE_MACHINE,\n payload: { id, props },\n});\n\nexport const deleteBox = (id) => ({\n type: actionTypes.DELETE_BOX,\n payload: { id },\n});\n\nexport const resetBoxes = () => ({\n type: actionTypes.RESET_BOXES,\n payload: {},\n});\n\nexport const nextRound = () => ({\n type: actionTypes.NEXT_ROUND,\n payload: {},\n});\n\nexport const changeMode = (mode) => ({\n type: actionTypes.CHANGE_GAME_MODE,\n payload: { mode },\n});\n\nexport const changeTotaltime = (totalTime) => ({\n type: actionTypes.CHANGE_TOTAL_TIME,\n payload: { totalTime },\n});\n\nexport const nextLevel = (level) => ({\n type: actionTypes.NEXT_LEVEL,\n payload: { level },\n});\n\nexport const updateAnswer = (answer) => ({\n type: actionTypes.UPDATE_ANSWER,\n payload: { answer },\n});\n\nexport const changeBoxes = () => ({\n type: actionTypes.CHANGE_BOXES,\n payload: {},\n});\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { ActionCreators as UndoActionCreators } from 'redux-undo';\nimport { Icon, Grid } from 'semantic-ui-react';\nimport FirstContainer from '../../../components/boxes/FirstContainer';\nimport SecondContainer from '../../../components/boxes/SecondContainer';\nimport SimulatorView from '../../../components/boxes/SimulatorView';\nimport * as situations from '../../../components/boxes/situations';\nimport {\n createBox,\n deleteBox,\n updateBox,\n nextRound,\n changeMode,\n changeTotaltime,\n nextLevel,\n updateAnswer,\n changeBoxes,\n} from '../../../redux/actions/boxesSimulation';\n\nclass FirstBoxesContainer extends Component {\n state = {\n height: window.innerHeight,\n width: (window.innerWidth * 2) / 3 + 30,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.resizeListener);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.resizeListener);\n }\n\n resizeListener = () => {\n this.setState({ width: window.innerWidth, height: window.innerHeight });\n };\n\n render() {\n // const shellBoxes = this.props.boxes.filter((box) => {\n // return box.props.situation === situations.IN_SHELL;\n // });\n return (\n <>\n \n \n \n >\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n boxes: state.boxesSimulation.present.boxes,\n round: state.boxesSimulation.present.round,\n mode: state.boxesSimulation.present.mode,\n totalTime: state.boxesSimulation.present.totalTime,\n level: state.boxesSimulation.present.level,\n answer: state.boxesSimulation.present.answer,\n optimum: state.boxesSimulation.present.optimum,\n canUndo: state.boxesSimulation.past.length > 0,\n canRedo: state.boxesSimulation.future.length > 0,\n});\n\nexport default connect(mapStateToProps, {\n createBox,\n updateBox,\n deleteBox,\n nextRound,\n changeMode,\n changeTotaltime,\n nextLevel,\n updateAnswer,\n changeBoxes,\n onUndo: UndoActionCreators.undo,\n onRedo: UndoActionCreators.redo,\n})(FirstBoxesContainer);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { ActionCreators as UndoActionCreators } from 'redux-undo';\nimport { Icon, Grid } from 'semantic-ui-react';\nimport FirstContainer from '../../../components/boxes/FirstContainer';\nimport SecondContainer from '../../../components/boxes/SecondContainer';\nimport SimulatorView from '../../../components/boxes/SimulatorView';\nimport * as situations from '../../../components/boxes/situations';\nimport {\n createBox,\n deleteBox,\n updateBox,\n nextRound,\n changeMode,\n changeTotaltime,\n nextLevel,\n updateAnswer,\n changeBoxes,\n} from '../../../redux/actions/boxesSimulation';\n\nclass FirstBoxesContainer extends Component {\n state = {\n optimum: 24,\n height: window.innerHeight,\n width: (window.innerWidth * 2) / 3 + 30,\n };\n\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {\n this.props.nextRound();\n window.addEventListener('resize', this.resizeListener);\n this.props.changeBoxes()\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.resizeListener);\n }\n\n resizeListener = () => {\n this.setState({ width: window.innerWidth, height: window.innerHeight });\n };\n\n render() {\n const shellBoxes = this.props.boxes.filter((box) => {\n return box.props.situation === situations.IN_SHELL;\n });\n return (\n <>\n \n \n \n >\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n boxes: state.boxesSimulation.present.boxes,\n round: state.boxesSimulation.present.round,\n mode: state.boxesSimulation.present.mode,\n totalTime: state.boxesSimulation.present.totalTime,\n level: state.boxesSimulation.present.level,\n answer: state.boxesSimulation.present.answer,\n optimum: state.boxesSimulation.present.optimum,\n canUndo: state.boxesSimulation.past.length > 0,\n canRedo: state.boxesSimulation.future.length > 0,\n});\n\nexport default connect(mapStateToProps, {\n createBox,\n updateBox,\n deleteBox,\n nextRound,\n changeMode,\n changeTotaltime,\n nextLevel,\n updateAnswer,\n changeBoxes,\n onUndo: UndoActionCreators.undo,\n onRedo: UndoActionCreators.redo,\n})(FirstBoxesContainer);\n","import React, { Component } from 'react';\nimport { Stage, Layer, Line, Circle } from 'react-konva';\nimport _ from 'lodash';\n\nclass VerticalLinesView extends Component {\n constructor(props) {\n super(props);\n\n this.getLinePoints = this.getLinePoints.bind(this);\n }\n\n getLinePoints(line) {\n const from = _.find(this.props.points, { id: line.from });\n const to = _.find(this.props.points, { id: line.to });\n\n let m = (to.props.y - from.props.y) / (to.props.x - from.props.x);\n let b = from.props.y - m * from.props.x;\n\n let start = {\n x: 50,\n y: m * 50 + b,\n };\n\n let end = {\n x: 650,\n y: m * 650 + b,\n };\n\n return { start, end };\n }\n\n returnY(x) {\n return -0.4 * x + 320;\n }\n\n render() {\n console.log('widht:', window.innerWidth, 'height:', window.innerHeight);\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n return (\n \n \n \n\n {this.props.points.map((point) => {\n return (\n \n );\n })}\n\n {this.props.lines.map((line) => {\n let { start, end } = this.getLinePoints(line);\n return (\n \n );\n })}\n\n {this.props.points.map((point) => {\n return (\n {\n this.props.onSelect(point.id);\n }}\n draggable={!point.props.isUsed}\n onDragEnd={(e) => {\n this.props.onDragEnd(point.id, e);\n }}\n dragBoundFunc={(pos) => {\n if (pos.y < 3 * heightScale) {\n return {\n x: point.props.x,\n y: 3 * heightScale,\n };\n } else if (pos.y > window.innerHeight - 3 * heightScale) {\n return {\n x: point.props.x,\n y: window.innerHeight - 3 * heightScale,\n };\n } else {\n return {\n x: point.props.x,\n y: pos.y,\n };\n }\n }}\n />\n );\n })}\n \n \n );\n }\n}\n\nexport default VerticalLinesView;\n","import React, { Component } from 'react';\nimport VerticalLinesView from '../../../components/codingGame/VerticalLinesView';\nimport {\n createPoints,\n createPoint,\n updatePoint,\n createLine,\n resetPoints,\n} from '../../../redux/actions/verticalLines';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { Icon, Grid } from 'semantic-ui-react';\nimport './style.css';\n\nclass VerticalLines extends Component {\n constructor(props) {\n super(props);\n this.onSelect = this.onSelect.bind(this);\n }\n\n componentDidMount() {\n this.props.createPoints(this.getInitialPoints());\n }\n\n getInitialPoints() {\n const widthScale = window.innerWidth / 671;\n return [\n {\n x: 100 * widthScale,\n y: this.returnY(100 * widthScale),\n isUsed: false,\n isSelected: false,\n },\n {\n x: 130 * widthScale,\n y: this.returnY(130 * widthScale),\n isUsed: false,\n isSelected: false,\n },\n {\n x: 300 * widthScale,\n y: this.returnY(300 * widthScale),\n isUsed: false,\n isSelected: false,\n },\n {\n x: 360 * widthScale,\n y: this.returnY(360 * widthScale),\n isUsed: false,\n isSelected: false,\n },\n {\n x: 380 * widthScale,\n y: this.returnY(380 * widthScale),\n isUsed: false,\n isSelected: false,\n },\n {\n x: 470 * widthScale,\n y: this.returnY(470 * widthScale),\n isUsed: false,\n isSelected: false,\n },\n {\n x: 630 * widthScale,\n y: this.returnY(630 * widthScale),\n isUsed: false,\n isSelected: false,\n },\n ];\n }\n\n onDragEnd(id, e) {\n this.props.updatePoint(id, {\n x: e.target.x(),\n y: e.target.y(),\n });\n }\n\n returnY(x) {\n const heightScale = window.innerHeight / 381;\n return -0.4 * x + 320 * heightScale;\n }\n\n onSelect(id) {\n const prePointSelected = _.find(this.props.points, (point) => {\n return point.props.isSelected;\n });\n const point = _.find(this.props.points, { id: id });\n\n if (!prePointSelected || prePointSelected.id === point.id) {\n this.props.updatePoint(id, {\n isSelected: !point.props.isSelected,\n });\n } else {\n this.props.updatePoint(prePointSelected.id, {\n isSelected: false,\n isUsed: true,\n });\n this.props.updatePoint(point.id, { isUsed: true });\n this.props.createLine(prePointSelected.id, point.id, {});\n }\n }\n\n reset() {\n this.props.resetPoints();\n this.props.createPoints(this.getInitialPoints());\n }\n\n render() {\n return (\n <>\n \n \n >\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n points: state.verticalLines.points,\n lines: state.verticalLines.lines,\n});\n\nexport default connect(mapStateToProps, {\n createPoints,\n createPoint,\n updatePoint,\n createLine,\n resetPoints,\n})(VerticalLines);\n","import * as actionTypes from './actionTypes';\nimport makeId from '../../utils/makeId';\n\nexport const createPoints = (pointProps) => ({\n type: actionTypes.CREATE_POINTS,\n payload: {pointProps}\n})\n\nexport const createPoint = (props) => ({\n type: actionTypes.CREATE_POINT,\n payload: { id: makeId(), props },\n});\n\nexport const updatePoint = (id, props) => ({\n type: actionTypes.UPDATE_POINT,\n payload: { id, props },\n});\n\nexport const createLine = (from, to, props) => ({\n type: actionTypes.CREATE_LINE,\n payload: { id: makeId(), from, to, props },\n});\n\nexport const resetPoints = () => ({\n type: actionTypes.RESET_POINTS,\n payload: {}\n})\n","import React, { Component } from 'react';\nimport URLImage from '../konva/URLImage/URLImage';\nimport { Group, Text } from 'react-konva';\n\nclass Dummy extends Component {\n render() {\n const dummyWidth = window.innerHeight / 18;\n return (\n \n \n \n \n );\n }\n}\n\nexport default Dummy;\n","export const LEFT = 'LEFT';\nexport const RIGHT = 'RIGHT';\nexport const MIDDLE = 'MIDDLE';\n\nexport const UP = 'UP';\nexport const DOWN = 'DOWN';","import React, { Component } from 'react';\nimport { Group, Layer, Stage, Label, Tag, Text } from 'react-konva';\n\nimport { Button, Container, Dropdown, Grid, Segment } from 'semantic-ui-react';\nimport * as gameModes from '../../redux/reducers/dummiesGameModes';\nimport Dummy from './Dummy';\nimport * as situations from './situations';\nimport './style.css';\n\nclass DummiesGameView extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n finalAnswer: '',\n inputValue: '',\n };\n\n this.start = this.start.bind(this);\n this.onInputChange = this.onInputChange.bind(this);\n this.onGuess = this.onGuess.bind(this);\n this.viewResault = this.viewResault.bind(this);\n this.resetDummies = this.resetDummies.bind(this);\n }\n\n onInputChange(e) {\n this.setState({ inputValue: e.target.innerText });\n }\n\n onGuess() {\n this.props.changeMode(gameModes.SEE_RESAULT);\n }\n\n start() {\n let randomNumber;\n //Right : Up - Left: Down\n let finalAnswer =\n Math.round(Math.random()) === 0 ? situations.LEFT : situations.RIGHT;\n this.setState({ finalAnswer: finalAnswer });\n\n let index = 0;\n this.props.dummies.forEach((dummy, myIndex) => {\n if (this.props.level === 1) {\n if (index === 0) {\n randomNumber = finalAnswer === situations.LEFT ? 0 : 1;\n index++;\n } else {\n randomNumber = Math.round(Math.random());\n }\n } else {\n if (myIndex === 0 && dummy.props.wrongNumber === 0) {\n randomNumber = finalAnswer === situations.LEFT ? 1 : 0;\n } else {\n if (myIndex === 0) {\n randomNumber = finalAnswer === situations.LEFT ? 0 : 1;\n } else {\n if (\n this.props.round === this.props.totalRounds &&\n dummy.props.wrongNumber === 0\n ) {\n randomNumber = finalAnswer === situations.LEFT ? 1 : 0;\n } else {\n randomNumber = Math.round(Math.random());\n }\n }\n }\n }\n\n this.props.updateDummy(dummy.id, {\n situation: randomNumber === 0 ? situations.LEFT : situations.RIGHT,\n });\n });\n this.props.changeMode(gameModes.GUESSING);\n }\n\n resetDummies(level) {\n this.props.dummies.forEach((dummy) => {\n let preNumber = dummy.props.wrongNumber;\n let wrongNumber =\n level === 2\n ? 0\n : dummy.props.situation === this.state.finalAnswer\n ? preNumber\n : preNumber + 1;\n this.props.updateDummy(dummy.id, {\n situation: situations.MIDDLE,\n wrongNumber: wrongNumber,\n });\n });\n }\n\n viewResault() {\n alert(this.state.finalAnswer === situations.RIGHT ? 'بالا' : 'پایین');\n\n let userSituation =\n this.state.inputValue === 'بالا' ? situations.RIGHT : situations.LEFT;\n\n if (userSituation !== this.state.finalAnswer) {\n this.props.wrongAnswered();\n }\n\n if (this.props.round === this.props.totalRounds) {\n if (this.props.level === 2) {\n this.resetDummies(2);\n this.props.resetGame();\n } else {\n this.props.nextLevel();\n this.resetDummies(2);\n }\n } else {\n this.props.nextRound();\n this.resetDummies(1);\n }\n\n this.props.changeMode(gameModes.START);\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n const inputOptions = [\n { key: 1, text: 'بالا', value: 1 },\n { key: 2, text: 'پایین', value: 2 },\n ];\n let leftX = -30,\n leftY = 0,\n leftCounter = 0;\n let rightX = -30,\n rightY = 0,\n rightCounter = 0;\n\n const dummyWidth = window.innerWidth / 18;\n const dummyScale = window.innerWidth / 18 / 70;\n\n return (\n <>\n \n \n \n \n {this.props.mode !== gameModes.START ? (\n \n \n \n 0.8 ? 4 : 2}\n fontSize={widthScale > 0.8 ? 15 : 10}\n fontStyle=\"bold\"\n width={40 * widthScale}\n align=\"center\"\n />\n \n \n \n 0.8 ? 4 : 2}\n fontSize={widthScale > 0.8 ? 15 : 10}\n fontStyle=\"bold\"\n width={40 * widthScale}\n align=\"center\"\n />\n \n \n ) : (\n <>>\n )}\n\n (this.leftGroup = leftGroup)}\n >\n {this.props.dummies\n .filter((dummy) => {\n return dummy.props.situation === situations.LEFT;\n })\n .map((dummy) => {\n leftX += 30;\n if (leftCounter === 4) {\n leftX = 0;\n leftY += (65 * dummyWidth) / 35;\n leftCounter = 0;\n }\n leftCounter++;\n\n return (\n \n \n \n );\n })}\n \n\n {this.props.mode === gameModes.START ? (\n (this.middleGroup = middleGroup)}\n >\n \n \n \n \n ) : (\n <>>\n )}\n\n (this.rightGroup = rightGroup)}\n >\n {this.props.dummies\n .filter((dummy) => {\n return dummy.props.situation === situations.RIGHT;\n })\n .map((dummy) => {\n rightX += 30;\n if (rightCounter === 4) {\n rightX = 0;\n rightY += (65 * dummyWidth) / 35;\n rightCounter = 0;\n }\n rightCounter++;\n return (\n \n \n \n );\n })}\n \n \n \n \n \n \n دور {this.props.round} از {this.props.totalRounds}\n \n\n حدس اشتباه : {this.props.userWrongNumber}\n\n \n\n {this.props.mode === gameModes.GUESSING ? (\n \n ) : (\n ''\n )}\n\n {this.props.mode === gameModes.GUESSING ? (\n \n ) : (\n ''\n )}\n\n {this.props.mode === gameModes.SEE_RESAULT ? (\n \n ) : (\n ''\n )}\n \n \n >\n );\n }\n}\n\nexport default DummiesGameView;\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport DummiesGameView from '../../../components/dummiesGame/DummiesGameView';\nimport * as situations from '../../../components/dummiesGame/situations';\nimport { changeGameMode, createDummy, nextDummyLevel, nextDummyRound, resetDummyGame, updateDummy, wrongAnswered } from '../../../redux/actions/dummyGame';\n\nclass DummiesGame extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // roundNumber: 15,\n };\n }\n componentDidMount() {\n for (let i = 0; i < 15; i++) {\n this.props.createDummy({\n number: i + 1,\n wrongNumber: 0,\n situation: situations.MIDDLE,\n });\n }\n }\n\n render() {\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n dummies: state.dummiesGame.dummies,\n round: state.dummiesGame.round,\n level: state.dummiesGame.level,\n mode: state.dummiesGame.mode,\n totalRounds: state.dummiesGame.totalRounds,\n userWrongNumber: state.dummiesGame.userWrongNumber,\n});\n\nexport default connect(mapStateToProps, {\n createDummy,\n updateDummy,\n nextDummyRound,\n nextDummyLevel,\n resetDummyGame,\n changeGameMode,\n wrongAnswered,\n})(DummiesGame);\n","import * as actionTypes from './actionTypes';\nimport makeId from '../../utils/makeId';\n\nexport const createDummy = (props) => ({\n type: actionTypes.CREATE_DUMMY,\n payload: { id: makeId(), props },\n});\n\nexport const updateDummy = (id, props) => ({\n type: actionTypes.UPDATE_DUMMY,\n payload: { id, props },\n});\n\nexport const nextDummyRound = () => ({\n type: actionTypes.NEXT_DUMMY_ROUND,\n payload: {},\n});\n\nexport const wrongAnswered = () => ({\n type: actionTypes.WRONG_ANSWERED,\n payload: {},\n});\n\nexport const resetDummyGame = () => ({\n type: actionTypes.RESET_DUMMY_GAME,\n payload: {},\n});\n\nexport const nextDummyLevel = () => ({\n type: actionTypes.DUMMY_NEXT_LEVEl,\n payload: {},\n});\n\nexport const changeGameMode = (mode) => ({\n type: actionTypes.DUMMIES_CHANGE_MODE,\n payload: { mode },\n});\n","import * as actionTypes from './actionTypes';\nimport makeId from '../../utils/makeId';\n\nexport const createVertex = (props, gameType) => ({\n type: actionTypes.CREATE_VERTICE + '_' + gameType,\n payload: { id: makeId(), props },\n});\n\nexport const createEdge = (from, to, gameType, props) => ({\n type: actionTypes.CREATE_EDGE + '_' + gameType,\n payload: { id: makeId(), from, to, props },\n});\n\nexport const initialVertices = (newVertices, gameType) => ({\n type: actionTypes.INITIAL_VERTICES + '_' + gameType,\n payload: { newVertices },\n});\n\nexport const initialEdges = (newEdges, gameType) => ({\n type: actionTypes.INITIAL_EDGES + '_' + gameType,\n payload: { newEdges },\n});\n\nexport const updateVertex = (id, props, gameType) => {\n return {\n type: actionTypes.UPDATE_VERTICE + '_' + gameType,\n payload: { id, props },\n };\n};\n\nexport const updateEdge = (id, props, gameType) => ({\n type: actionTypes.UPDATE_EDGE + '_' + gameType,\n payload: { id, props },\n});\n\nexport const selectVertex = (id, gameType) => ({\n type: actionTypes.SELECT_VERTICE + '_' + gameType,\n payload: { id },\n});\n\nexport const selectEdge = (id, gameType) => ({\n type: actionTypes.SELECT_EDGE + '_' + gameType,\n payload: { id },\n});\n\nexport const deselectVertex = (id, gameType) => ({\n type: actionTypes.DESELECT_VERTICE + '_' + gameType,\n payload: { id },\n});\n\nexport const deselectEdge = (id, gameType) => ({\n type: actionTypes.DESELECT_EDGE + '_' + gameType,\n payload: { id },\n});\n\nexport const removeSelectedVertices = (gameType) => ({\n type: actionTypes.REMOVE_SELECTED_VERTICES + '_' + gameType,\n});\n\nexport const removeSelectedEdges = (gameType) => ({\n type: actionTypes.REMOVE_SELECTED_EDGES + '_' + gameType,\n});\n\nexport const deleteVertex = (id, gameType) => ({\n type: actionTypes.DELETE_VERTEX + '_' + gameType,\n payload: { id },\n});\n\nexport const deleteEdge = (id, gameType) => ({\n type: actionTypes.DELETE_EDGE + '_' + gameType,\n payload: { id },\n});\n\nexport const resetGraph = (gameType) => ({\n type: actionTypes.RESET_GRAPH + '_' + gameType,\n payload: {},\n});\n\nexport const updateCost = (cost, gameType) => ({\n type: actionTypes.UPDATE_COST + '_' + gameType,\n payload: { cost },\n});\n\nexport const updateAddedFlux = (newFlux, gameType) => ({\n type: actionTypes.UPDATE_ADDED_FLUX + '_' + gameType,\n payload: { newFlux },\n});\n","import React, { Component } from 'react';\nimport { Line } from 'react-konva';\n\nclass DormEdge extends Component {\n points(points) {\n let res;\n if (!!points) {\n this.myLine.points(points);\n } else {\n res = this.myLine.points();\n }\n this.myLine.getLayer().batchDraw();\n return res;\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n return (\n <>\n 0.8 ? 10 : 7}\n ref={(line) => (this.myLine = line)}\n shadowBlur={this.props.isSelected ? 20 : 0}\n />\n >\n );\n }\n}\n\nexport default DormEdge;\n","import React, { Component } from 'react';\nimport {\n createVertex,\n createEdge,\n updateVertex,\n selectVertex,\n deselectVertex,\n deleteVertex,\n deleteEdge,\n updateEdge,\n} from '../../../redux/actions/graph';\nimport { connect } from 'react-redux';\nimport gameTypes from '../gameTypes';\nimport GraphViewer from '../../../components/Graph/GraphViewer';\nimport { Icon, Container, Button } from 'semantic-ui-react';\nimport DormEdge from '../../../components/dormGame/EdgeLine';\nimport _ from 'lodash';\n\nlet mat = create2DArray(20, 20);\nlet per = [];\nlet answer = [[]];\nlet mark = new Array(20);\n\nfunction create2DArray(rows, columns) {\n return Array.from(Array(rows), () => new Array(columns));\n}\n\nclass DormGame extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n maxEdges: [],\n isShowingMaxMatchings: false,\n matchingsLength: 0,\n curMatchingIndex: 0,\n currentIndex: 0,\n graphHasChanged: false,\n };\n\n this.onDragEnd = this.onDragEnd.bind(this);\n this.edgeExists = this.edgeExists.bind(this);\n this.onSelect = this.onSelect.bind(this);\n this.getEdges = this.getEdges.bind(this);\n this.clacMatchings = this.clacMatchings.bind(this);\n this.resetEdges = this.resetEdges.bind(this);\n this.showNextMaching = this.showNextMaching.bind(this);\n }\n\n match(v, n, m) {\n if (v >= n) {\n for (let i = 0; i < n; i++) {\n for (let j = i + 1; j < n; j++) {\n if (mat[i][j] && !mark[i] && !mark[j]) {\n return;\n }\n }\n }\n\n let tempArray = [...per];\n answer = answer.concat([tempArray]);\n return;\n }\n\n if (mark[v]) {\n this.match(v + 1, n, m);\n return;\n }\n for (let i = v + 1; i < n; i++) {\n if (!mark[i] && mat[v][i] && i != v) {\n mark[v] = 1;\n mark[i] = 1;\n per.push(v, i);\n this.match(v + 1, n, m);\n mark[v] = 0;\n mark[i] = 0;\n per.pop();\n per.pop();\n }\n }\n this.match(v + 1, n, m);\n }\n\n onDragEnd(x, y, id) {\n this.props.updateVertex(\n id,\n {\n x,\n y,\n },\n gameTypes.DORM_GAME.type\n );\n }\n\n edgeExists(fromID, toID) {\n var res = false;\n this.props.edges.forEach((edge) => {\n if (\n (edge.from === fromID && edge.to === toID) ||\n (edge.from === toID && edge.to === fromID)\n ) {\n res = true;\n }\n });\n return res;\n }\n\n onSelect(id, isSelected) {\n if (!this.state.isShowingMaxMatchings) {\n if (isSelected) {\n this.props.deselectVertex(id, gameTypes.DORM_GAME.type);\n } else {\n this.props.selectVertex(id, gameTypes.DORM_GAME.type);\n this.props.vertices.forEach((vertex) => {\n if (vertex.id !== id && vertex.isSelected) {\n if (!this.edgeExists(id, vertex.id)) {\n this.setState({ graphHasChanged: true });\n this.props.createEdge(id, vertex.id, gameTypes.DORM_GAME.type, {\n inMaxMatch: false,\n });\n }\n this.props.deselectVertex(id, gameTypes.DORM_GAME.type);\n this.props.deselectVertex(vertex.id, gameTypes.DORM_GAME.type);\n }\n });\n }\n }\n }\n\n onAddNodeClick() {\n this.props.createVertex(\n {\n x: 100,\n y: 100,\n name: alphabet[this.state.currentIndex],\n },\n gameTypes.DORM_GAME.type\n );\n this.setState({ graphHasChanged: true });\n if (this.state.currentIndex <= 30) {\n this.setState({ currentIndex: this.state.currentIndex + 1 });\n }\n }\n\n onTrashIconClick() {\n this.setState({\n isShowingMaxMatchings: false,\n matchingsLength: 0,\n curMatchingIndex: 1,\n graphHasChanged: true,\n });\n this.resetEdges();\n this.props.vertices.forEach((vertex) => {\n if (vertex.isSelected) {\n this.props.deleteVertex(vertex.id, gameTypes.DORM_GAME.type);\n this.props.edges.forEach((edge) => {\n if (edge.to === vertex.id || edge.from === vertex.id) {\n this.props.deleteEdge(edge.id, gameTypes.DORM_GAME.type);\n }\n });\n }\n });\n\n this.props.edges.forEach((edge) => {\n if (edge.isSelected) {\n this.props.deleteEdge(edge.id, gameTypes.DORM_GAME.type);\n }\n });\n }\n\n resetEdges() {\n this.props.edges.forEach((edge) => {\n if (edge.props.inMaxMatch) {\n this.props.updateEdge(\n edge.id,\n {\n inMaxMatch: false,\n },\n gameTypes.DORM_GAME.type\n );\n }\n });\n }\n\n showMaxMatching(index) {\n const maxEdges = answer[index];\n let maxEdgesNum = maxEdges.length / 2;\n for (let i = 0; i < maxEdgesNum; i++) {\n let firstIndex = maxEdges[i * 2];\n let secondIndex = maxEdges[i * 2 + 1];\n\n let firstID = this.props.vertices[firstIndex].id;\n let secondID = this.props.vertices[secondIndex].id;\n\n const edge = _.find(this.props.edges, function (edge) {\n return (\n (edge.from === firstID && edge.to === secondID) ||\n (edge.to === firstID && edge.from === secondID)\n );\n });\n\n this.props.updateEdge(\n edge.id,\n {\n inMaxMatch: true,\n },\n gameTypes.DORM_GAME.type\n );\n }\n }\n\n deleteMatching() {\n answer.splice(this.state.curMatchingIndex - 1, 1);\n this.showNextMaching(this.state.curMatchingIndex - 1, answer.length);\n }\n\n getEdges() {\n let edges = [];\n this.props.edges.forEach((edge) => {\n let firstIndex = _.findIndex(this.props.vertices, { id: edge.from });\n let secondIndex = _.findIndex(this.props.vertices, { id: edge.to });\n edges.push([firstIndex + 1, secondIndex + 1]);\n });\n return edges;\n }\n\n clacMatchings(edges) {\n let m = this.props.edges.length;\n\n for (let i = 0; i < m; i++) {\n let f = edges[i][0];\n let s = edges[i][1];\n mat[--f][--s] = 1;\n mat[s][f] = 1;\n }\n\n this.match(0, this.props.vertices.length, m);\n }\n\n showNextMaching(index, length) {\n if (!this.state.isShowingMaxMatchings) {\n if (this.state.graphHasChanged) {\n answer = [];\n mat = create2DArray(20, 20);\n per = [];\n answer = [[]];\n mark = new Array(20);\n let edges = this.getEdges();\n this.clacMatchings(edges);\n this.setState({ graphHasChanged: false });\n }\n\n if (answer.length === 1) {\n this.setState({ isShowingMaxMatchings: false });\n return;\n }\n\n this.setState({\n isShowingMaxMatchings: true,\n matchingsLength: answer.length - 1,\n });\n\n this.showMaxMatching(1);\n this.setState({ curMatchingIndex: 2 });\n } else {\n this.resetEdges();\n\n if (index <= answer.length - 1) {\n this.showMaxMatching(index);\n this.setState({ curMatchingIndex: index + 1 });\n } else {\n this.setState({ isShowingMaxMatchings: false });\n }\n }\n }\n\n onEdgeSelect() {}\n\n render() {\n return (\n <>\n \n \n \n \n {\n this.showNextMaching(this.state.curMatchingIndex, answer.length);\n }}\n style={{ cursor: 'pointer' }}\n />\n \n {this.state.isShowingMaxMatchings && (\n \n Delete This Matching\n \n )}\n >\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n vertices: state.dormGraph.dormVertices,\n edges: state.dormGraph.dormEdges,\n});\n\nexport default connect(mapStateToProps, {\n createVertex,\n updateEdge,\n createEdge,\n updateVertex,\n selectVertex,\n deselectVertex,\n deleteVertex,\n deleteEdge,\n})(DormGame);\n\nconst alphabet = [\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'aa',\n 'bb',\n 'cc',\n 'dd',\n 'ee',\n 'ff',\n 'gg',\n 'hh',\n 'ii',\n 'jj',\n 'kk',\n 'll',\n 'mm',\n 'oo',\n 'pp',\n 'qq',\n 'rr',\n 'ss',\n 'tt',\n 'uu',\n 'vv',\n 'ww',\n 'xx',\n 'yy',\n 'zz',\n];\n","import React, { Component } from 'react';\nimport { Line, Text, Group } from 'react-konva';\nimport URLImage from '../URLImage/URLImage.js';\n\nexport default class KonvaPipeline extends Component {\n points(points) {\n let res;\n if (!!points) {\n this.firstLine.points(points);\n res = this.firstLine.points(points);\n\n let newX = (points[0] + points[2]) / 2;\n let newY = (points[1] + points[3]) / 2;\n\n this.capacity.x(newX);\n this.capacity.y(newY);\n this.signs.x(newX);\n this.signs.y(newY);\n\n let angle = this.calcArrowRotation(points);\n this.arrow.konvaNode.rotation(angle);\n this.signs.rotation(angle);\n this.arrow.konvaNode.x((this.props.points[0] + this.props.points[2]) / 2);\n this.arrow.konvaNode.y((this.props.points[1] + this.props.points[3]) / 2);\n } else {\n res = this.firstLine.points();\n }\n this.firstLine.getLayer().batchDraw();\n return res;\n }\n\n calcArrowRotation(points) {\n let deltaX = points[1] - points[3];\n let deltaY = points[0] - points[2];\n\n var angle = (Math.atan(Math.abs(deltaX / deltaY)) * 180) / Math.PI;\n if (deltaX <= 0 && deltaY <= 0) {\n angle += 90;\n } else if (deltaX < 0 && deltaY > 0) {\n angle = -1 * angle - 90;\n } else if (deltaX > 0 && deltaY < 0) {\n angle = 90 - angle;\n } else if (deltaX >= 0 && deltaY >= 0) {\n angle = angle - 90;\n }\n return angle;\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n return (\n <>\n (this.firstLine = line)}\n shadowBlur={this.props.isSelected ? 10 : 0}\n />\n {\n this.arrow = node;\n }}\n />\n (this.signs = signs)}\n offsetX={9 * widthScale}\n offsetY={55 * heightScale}\n rotation={this.calcArrowRotation(this.props.points)}\n >\n {\n this.props.onPositiveClick(\n this.props.id,\n this.props.canBeSelected\n );\n }}\n onTouchStart={() => {\n this.props.onPositiveClick(\n this.props.id,\n this.props.canBeSelected\n );\n }}\n />\n\n {\n this.props.onNegativeClick(\n this.props.id,\n this.props.canBeSelected\n );\n }}\n onTouchStart={() => {\n this.props.onNegativeClick(\n this.props.id,\n this.props.canBeSelected\n );\n }}\n />\n \n (this.capacity = capacity)}\n >\n 0.8 ? 20 : 15}\n offsetX={10 * widthScale}\n offsetY={10 * heightScale}\n x={0}\n y={0}\n text={`${this.props.textProps.filled}/${this.props.textProps.capacity}`}\n />\n \n >\n );\n }\n}\n","import _ from 'lodash';\nimport React, { Component } from 'react';\nimport { Icon, Label } from 'semantic-ui-react';\nimport GraphViewer from '../../../components/Graph/GraphViewer';\nimport KonvaPipeline from '../../../components/konva/KonvaPipeline/KonvaPipeline';\nimport gameTypes from '../gameTypes';\nimport '../style.css';\n\nclass Graph extends Component {\n constructor(props) {\n super(props);\n\n this.start = this.start.bind(this);\n\n this.onDragEnd = this.onDragEnd.bind(this);\n this.onSelect = this.onSelect.bind(this);\n this.deleteNode = this.deleteNode.bind(this);\n this.onEdgeSelect = this.onEdgeSelect.bind(this);\n this.handleTextEdit = this.handleTextEdit.bind(this);\n this.handleTextareaKeyDown = this.handleTextareaKeyDown.bind(this);\n this.checkGraph = this.checkGraph.bind(this);\n this.checkPath = this.checkPath.bind(this);\n this.unselectEdges = this.unselectEdges.bind(this);\n this.onPositiveClick = this.onPositiveClick.bind(this);\n this.onNegativeClick = this.onNegativeClick.bind(this);\n this.handleFlux = this.handleFlux.bind(this);\n this.createNode = this.createNode.bind(this);\n this.activeEdges = this.activeEdges.bind(this);\n\n this.state = {\n preOperation: '',\n\n editTextValue: 0,\n canEnterValue: false,\n\n predUnstableVertice: null,\n unstableVertice: null,\n studentaValue: 4,\n };\n }\n\n componentDidMount() {\n this.start();\n }\n\n activeEdges(unStableVerticID, predUnstableVertice) {\n this.props.edges.forEach((edge) => {\n if (\n edge.to === predUnstableVertice ||\n edge.from === predUnstableVertice\n ) {\n if (edge.canBeSelected) {\n this.props.updateEdge(\n edge.id,\n {\n canBeSelected: false,\n },\n this.props.gameType\n );\n }\n } else if (\n edge.to === unStableVerticID ||\n edge.from === unStableVerticID\n ) {\n if (\n edge.to === this.state.unstableVertice ||\n edge.from === this.state.unstableVertice\n ) {\n this.props.updateEdge(\n edge.id,\n {\n canBeSelected: true,\n },\n this.props.gameType\n );\n let isInput = unStableVerticID === edge.from ? true : false;\n this.props.updateEdge(\n edge.id,\n {\n canBeSelected: true,\n isInput: isInput,\n },\n this.props.gameType\n );\n } else {\n if (!edge.canBeSelected) {\n let isInput = unStableVerticID === edge.from ? true : false;\n this.props.updateEdge(\n edge.id,\n {\n canBeSelected: true,\n isInput: isInput,\n },\n this.props.gameType\n );\n }\n }\n } else {\n if (edge.canBeSelected) {\n this.props.updateEdge(\n edge.id,\n {\n canBeSelected: false,\n },\n this.props.gameType\n );\n }\n }\n });\n this.props.updateVertex(\n this.state.unstableVertice,\n {\n notStable: false,\n },\n this.props.gameType\n );\n if (unStableVerticID === this.props.vertices[this.props.t].id) {\n let addedNumber = this.state.preOperation === '+' ? 1 : -1;\n this.props.updateAddedFlux(\n this.props.addedFlux + addedNumber,\n this.props.gameType\n );\n this.start();\n } else {\n this.setState({ unstableVertice: unStableVerticID });\n }\n }\n\n onDragEnd(x, y, id) {\n this.props.updateVertex(\n id,\n {\n x,\n y,\n },\n this.props.gameType\n );\n }\n\n onSelect(id, isSelected) {\n if (isSelected) {\n this.props.deselectVertex(id, this.props.gameType);\n } else {\n this.props.selectVertex(id, this.props.gameType);\n this.props.vertices.forEach((vertex) => {\n if (vertex.id !== id && vertex.isSelected) {\n if (!this.edgeExists(id, vertex.id)) {\n this.props.createEdge(id, vertex.id, this.props.gameType, {\n capacity: 10,\n canBeSelected: false,\n });\n }\n this.props.deselectVertex(id, this.props.gameType);\n this.props.deselectVertex(vertex.id, this.props.gameType);\n }\n });\n }\n }\n\n edgeExists(fromID, toID) {\n var res = false;\n this.props.edges.forEach((edge) => {\n if (\n (edge.from === fromID && edge.to === toID) ||\n (edge.from === toID && edge.to === fromID)\n ) {\n res = true;\n }\n });\n return res;\n }\n\n onEdgeSelect(id, isSelected) {\n if (isSelected) {\n this.props.deselectEdge(id, this.props.gameType);\n // this.setState({ canEnterValue: this.checkPath().isPath });\n } else {\n this.props.selectEdge(id, this.props.gameType);\n // this.setState({ canEnterValue: this.checkPath().isPath });\n }\n }\n\n deleteEdge(id) {\n let newEdges = this.props.edges.filter((obj) => {\n return obj.fromNodeID !== id && obj.toNodeID !== id;\n });\n\n this.setState({ edges: newEdges });\n }\n\n deleteNode(id) {\n let newNodes = this.state.nodes.filter((obj) => {\n return obj.id !== id;\n });\n\n //delet edges related to this node\n let newEdges = this.state.edges.filter((obj) => {\n return obj.fromNodeID !== id && obj.toNodeID !== id;\n });\n\n this.setState({ nodes: newNodes, edges: newEdges });\n }\n\n unselectEdges(selectedEdges) {\n selectedEdges.forEach((edge) => {\n this.props.deselectEdge(edge.id, this.props.gameType);\n });\n }\n\n checkGraph(selectedEdges) {\n var error = false;\n let fluxValue = this.state.editTextValue;\n\n if (!fluxValue) {\n error = true;\n }\n\n selectedEdges.forEach((edge) => {\n if (fluxValue > edge.props.capacity - edge.filled) {\n alert('not enough capacity!');\n error = true;\n }\n });\n\n if (error) {\n return;\n }\n\n selectedEdges.forEach((edge) => {\n let preFilled = edge.filled;\n\n this.props.updateEdge(\n edge.id,\n {\n filled: preFilled + parseInt(this.state.editTextValue),\n },\n this.props.gameType\n );\n this.props.deselectEdge(edge.id, this.props.gameType);\n });\n }\n\n checkPath() {\n const selectedEdges = this.props.edges.filter((edge) => {\n return edge.isSelected === true;\n });\n\n var checkEdges = [...selectedEdges];\n\n var isPath = true;\n\n var startNodeID = this.props.vertices[this.props.s].id;\n let selectedSize = checkEdges.length;\n\n for (let i = 0; i < selectedSize; i++) {\n const myEdge = _.filter(checkEdges, function (edge) {\n return edge.to === startNodeID || edge.from === startNodeID;\n });\n if (!myEdge.length) {\n isPath = false;\n break;\n } else if (myEdge.length > 1) {\n isPath = false;\n break;\n }\n\n let index = _.findIndex(checkEdges, myEdge[0]);\n checkEdges.splice(index, 1);\n\n startNodeID =\n myEdge[0].from === startNodeID ? myEdge[0].to : myEdge[0].from;\n }\n let endNodeID = this.props.vertices[this.props.t].id;\n if (startNodeID !== endNodeID) {\n isPath = false;\n }\n\n return {\n isPath,\n selectedEdges,\n };\n }\n\n handleTextEdit(e) {\n this.setState({\n editTextValue: e.target.value,\n });\n }\n\n handleTextareaKeyDown(e) {\n if (e.keyCode === 13) {\n let { isPath, selectedEdges } = this.checkPath();\n this.checkGraph(selectedEdges);\n this.unselectEdges(selectedEdges);\n this.setState({ canEnterValue: false });\n }\n }\n\n changeVertic(nextID, curID) {\n this.setState({\n unstableVertic: nextID,\n predUnstableVertice: curID,\n });\n this.props.updateVertex(\n nextID,\n {\n notStable: true,\n },\n this.props.gameType\n );\n this.props.updateVertex(\n curID,\n {\n notStable: false,\n },\n this.props.gameType\n );\n this.activeEdges(nextID, curID);\n }\n\n checkIfStable() {\n const unstableVertic = _.find(this.props.vertices, {\n id: this.state.unstableVertice,\n });\n\n let res = false;\n if (unstableVertic.props.inputFlux === unstableVertic.props.outputFlux) {\n res = true;\n }\n return res;\n }\n\n handleFlux(edge, sign) {\n this.setState({ preOperation: sign });\n const fromNode = _.find(this.props.vertices, { id: edge.from });\n const toNode = _.find(this.props.vertices, { id: edge.to });\n\n let numberAdded = sign === '+' ? 1 : -1;\n\n this.props.updateVertex(\n edge.from,\n {\n inputFlux: parseInt(fromNode.props.inputFlux) + numberAdded,\n },\n this.props.gameType\n );\n\n this.props.updateVertex(\n edge.to,\n {\n outputFlux: parseInt(toNode.props.outputFlux) + numberAdded,\n },\n this.props.gameType\n );\n\n let sourceID = this.props.vertices[this.props.s].id;\n\n let verticIsStable = this.checkIfStable();\n\n let nextVertic =\n edge.from === this.state.unstableVertice ? edge.to : edge.from;\n let curVertic =\n this.state.unstableVertice === edge.from ? edge.from : edge.to;\n\n if (sourceID === this.state.unstableVertice) {\n this.changeVertic(nextVertic, curVertic);\n } else {\n if (verticIsStable) {\n this.changeVertic(nextVertic, curVertic);\n } else {\n alert('با این حرکت، راس پایدار نمیشود');\n this.props.onUndo();\n this.props.onUndo();\n this.props.onUndo();\n }\n }\n }\n\n onPositiveClick(id, canBeSelected) {\n if (canBeSelected) {\n const edge = _.find(this.props.edges, { id: id });\n\n let preFilled = edge.filled;\n\n if (preFilled !== edge.props.capacity) {\n this.props.updateEdge(\n id,\n {\n canBeSelected: false,\n hasChanged: true,\n filled: preFilled + 1,\n lastMovPos: true,\n },\n this.props.gameType\n );\n this.handleFlux(edge, '+');\n }\n }\n }\n\n onNegativeClick(id, canBeSelected) {\n if (canBeSelected) {\n const edge = _.find(this.props.edges, { id: id });\n\n let preFilled = edge.filled;\n\n if (preFilled !== 0) {\n this.props.updateEdge(\n id,\n {\n canBeSelected: false,\n hasChanged: true,\n filled: preFilled - 1,\n lastMovPos: false,\n },\n this.props.gameType\n );\n this.handleFlux(edge, '-');\n }\n }\n }\n\n createNode() {\n this.props.createVertex(\n {\n x: 32,\n y: 100,\n inputFlux: 0,\n outputFlux: 0,\n },\n this.props.gameType\n );\n }\n\n restartGame() {\n this.props.reset(this.props.gameType);\n\n this.start();\n }\n\n start() {\n this.props.edges.forEach((edge) => {\n if (edge.hasChanged) {\n this.props.updateEdge(\n edge.id,\n {\n hasChanged: false,\n },\n this.props.gameType\n );\n }\n });\n let nextID = this.props.vertices[this.props.s].id;\n if (!this.state.unstableVertice) {\n this.setState({\n unstableVertice: nextID,\n });\n }\n this.activeEdges(nextID);\n }\n\n render() {\n const widthScale = window.innerWidth / 671;\n const heightScale = window.innerHeight / 381;\n\n return (\n <>\n \n \n \n 0.8 ? 'medium' : 'mini'}\n style={{\n top:\n this.props.gameType === gameTypes.PIPELINE_GRAPH.type\n ? '40px'\n : '10px',\n left: '10px',\n position: 'absolute',\n }}\n >\n جریان اضافه شده :{this.props.addedFlux}\n \n >\n );\n }\n}\n\nexport default Graph;\n","import React, { Component } from 'react';\nimport { Grid, Input, Segment, Button } from 'semantic-ui-react';\nimport _ from 'lodash';\nimport './style.css';\nimport { correctTableInputs } from './pipelineGraphData';\n\nconst cuts = [\n '{s}',\n '{s,o}',\n '{s,h}',\n '{s,r}',\n '{s,v}',\n '{s,h,v}',\n '{s,h,r}',\n '{s,h,o}',\n '{s,r,v}',\n '{s,r,o}',\n '{s,o,v}',\n '{s,h,r,v}',\n '{s,h,r,o}',\n '{s,h,o,v}',\n '{s,r,o,v}',\n '{s,h,r,o,v}',\n];\n\nconst Row = ({ index, name, vertices, hasAnswered, onInputChange }) => (\n \n \n {name}\n \n \n \n {hasAnswered ? (\n <>{correctTableInputs[index]}>\n ) : (\n {\n onInputChange(e, index);\n }}\n />\n )}\n \n \n \n {getThirdColumn(name, vertices)}\n \n \n {getFourthColumn(name, vertices)}\n \n \n);\n\nfunction getThirdColumn(cutsName, vertices) {\n let subString = cutsName.slice(1, cutsName.length - 1);\n let vertexNames = subString.split(',');\n\n let outputFlow = 0;\n vertexNames.forEach((name) => {\n const vertex = _.find(vertices, function (vertice) {\n return vertice.props.name === name;\n });\n outputFlow += vertex.props.outputFlux;\n });\n\n return outputFlow;\n}\n\nfunction getFourthColumn(cutsName, vertices) {\n let subString = cutsName.slice(1, cutsName.length - 1);\n let vertexNames = subString.split(',');\n\n let inputFlow = 0;\n vertexNames.forEach((name) => {\n const vertex = _.find(vertices, function (vertice) {\n return vertice.props.name === name;\n });\n inputFlow += vertex.props.inputFlux;\n });\n\n return inputFlow;\n}\n\nclass PipelineTable extends Component {\n state = {\n hasAnswered: false,\n inputs: ['', '', '', '', ''],\n };\n\n onButtonClick() {\n let check = true;\n this.state.inputs.forEach((text, index) => {\n if (text !== correctTableInputs[index]) {\n check = false;\n }\n });\n if (check) {\n this.setState({ hasAnswered: true });\n }\n }\n\n onInputChange(e, index) {\n if (index < 5) {\n const newInputs = this.state.inputs.map((text, i) => {\n return i === index ? e.target.value : text;\n });\n this.setState({ inputs: newInputs });\n }\n }\n\n render() {\n return (\n \n \n {cuts.map((cut, index) => {\n return (\n \n );\n })}\n \n \n Check Answers\n \n \n \n \n );\n }\n}\n\nexport default PipelineTable;\n","import React, { Component } from 'react';\nimport {\n Segment,\n Input,\n Container,\n Grid,\n Label,\n Reveal,\n Image,\n Header,\n Button,\n Card,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport URLImage from '../../../components/konva/URLImage/URLImage';\n\nconst width = window.innerWidth;\nconst height = window.innerHeight;\n\nconst pointsNumber = 10000;\nconst totalPhi = 1000000;\nvar roomDesirabilityForPlayer = [[,], [,]]; // [room number][player number]\n\nvar X_points = Array.from(Array(pointsNumber).keys(), (x) => {\n if (x === 0) return 0;\n if (x === 1) return totalPhi;\n return Math.floor(Math.random() * totalPhi);\n}).sort(function (a, b) {\n return a - b;\n});\n\nfor (var i = 0; i < 4; i++) {\n roomDesirabilityForPlayer[Math.floor(i / 2)][i % 2] = Array.from(\n Array(pointsNumber).keys(),\n (x) => Math.floor(Math.random() * totalPhi)\n )\n .sort(function (a, b) {\n return a - b;\n })\n .reverse();\n}\n\nfunction getDesirability(x1, y1, x2, y2, x) {\n return y1 + ((x - x1) / (x2 - x1)) * (y2 - y1);\n}\n\nfunction getPlayerPreference(room1Phi, room2Phi, playerNumber) {\n var room0Desirability, room1Desirability;\n for (var i = pointsNumber - 1; i >= 0; i--) {\n if (room1Phi >= X_points[i]) {\n room0Desirability = getDesirability(\n X_points[i],\n roomDesirabilityForPlayer[0][playerNumber][i],\n X_points[i + 1],\n roomDesirabilityForPlayer[0][playerNumber][i + 1],\n room1Phi\n );\n break;\n }\n }\n for (var i = pointsNumber - 1; i >= 0; i--) {\n if (room2Phi >= X_points[i]) {\n room1Desirability = getDesirability(\n X_points[i],\n roomDesirabilityForPlayer[1][playerNumber][i],\n X_points[i + 1],\n roomDesirabilityForPlayer[1][playerNumber][i + 1],\n room2Phi\n );\n break;\n }\n }\n if (room0Desirability > room1Desirability) {\n return 1;\n } else {\n return 2;\n }\n}\n\nexport default class RentRoom extends Component {\n constructor(props) {\n super(props);\n this.state = {\n playerAnswer: ['', ''],\n room1Phi: 0,\n buttonActivation: [true, true],\n };\n this.setPlayerAnswer = this.setPlayerAnswer.bind(this);\n }\n\n handleChange = (e, { name, value }) => {\n this.setState({ [name]: value });\n };\n\n setPlayerAnswer(playerNumber) {\n this.setState({\n buttonActivation: {\n ...this.state.buttonActivation,\n [playerNumber]: false,\n },\n });\n const { room1Phi } = this.state;\n const roomNumber = getPlayerPreference(\n room1Phi,\n totalPhi - room1Phi,\n playerNumber\n );\n this.setState({\n playerAnswer: {\n ...this.state.playerAnswer,\n [playerNumber]: 'وایسا یکم فکر کنم...',\n },\n });\n setTimeout(\n function () {\n this.setState({\n playerAnswer: {\n ...this.state.playerAnswer,\n [playerNumber]:\n 'من اتاق شماره ' + roomNumber + ' را انتخاب میکنم!',\n },\n });\n }.bind(this),\n 2000\n );\n setTimeout(\n function () {\n this.setState({\n buttonActivation: {\n ...this.state.buttonActivation,\n [playerNumber]: true,\n },\n playerAnswer: { ...this.state.playerAnswer, [playerNumber]: '' },\n });\n }.bind(this),\n 4000\n );\n }\n\n render() {\n return (\n \n \n \n \n \n بازیکن شماره یک\n \n\n \n\n \n آقای همساده\n \n \n {this.state.playerAnswer[0]}\n \n\n \n \n بازیکن شماره دو\n \n\n \n\n \n فامیل دور\n \n\n {this.state.playerAnswer[1]}\n \n \n\n \n \n \n \n \n\n \n this.setPlayerAnswer(0)}\n >\n از بازیکن شماره یک بپرس\n \n\n this.setPlayerAnswer(1)}\n >\n از بازیکن شماره دو بپرس\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n vertices: state.graph.vertices,\n edges: state.graph.edges,\n});\n\nconnect(mapStateToProps, {})(RentRoom);\n","import React, { Component } from 'react';\nimport { Tab } from 'semantic-ui-react';\nimport PipelineGraph from './PipelineGraph';\nimport PipelineTable from './PipelineTable';\nimport { connect } from 'react-redux';\nimport { ActionCreators as UndoActionCreators } from 'redux-undo';\nimport {\n pipelineInitialVertices1,\n pipelineInitialEdges1,\n} from './pipelineGraphData';\n\nimport {\n createEdge,\n createVertex,\n deselectEdge,\n deselectVertex,\n selectEdge,\n selectVertex,\n updateEdge,\n updateVertex,\n resetGraph,\n updateAddedFlux,\n initialEdges,\n initialVertices,\n} from '../../../redux/actions/graph';\nimport gameTypes from '../gameTypes';\n\nconst panes = [\n {\n menuItem: 'Graph',\n render: (props) => {\n return ;\n },\n },\n {\n menuItem: 'Table',\n render: (props) => {\n return ;\n },\n },\n];\n\nclass PipelinePane extends Component {\n render() {\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n vertices: state.pipelineGraph.present.pipelineVertices,\n edges: state.pipelineGraph.present.pipelineEdges,\n addedFlux: state.pipelineGraph.present.addedFlux,\n s: state.pipelineGraph.present.s,\n t: state.pipelineGraph.present.t,\n canUndo: state.pipelineGraph.past.length > 0,\n canRedo: state.pipelineGraph.future.length > 0,\n});\n\nexport default connect(mapStateToProps, {\n createVertex,\n createEdge,\n updateVertex,\n updateEdge,\n selectEdge,\n selectVertex,\n deselectEdge,\n deselectVertex,\n resetGraph,\n updateAddedFlux,\n initialEdges,\n initialVertices,\n onUndo: UndoActionCreators.undo,\n onRedo: UndoActionCreators.redo,\n})(PipelinePane);\n","import * as actionTypes from './actionTypes';\n\nexport const updateSets = (set, index) => ({\n type: actionTypes.UPDATE_SETS,\n payload: { set, index },\n});\n\nexport const updateStateOfSets = (stateOfSet, index) => ({\n type: actionTypes.UPDATE_STATE_OF_SETS,\n payload: { stateOfSet, index },\n});\n\nexport const updateGuessedNumber = (guessedNumber) => ({\n type: actionTypes.UPDATE_GUESSED_NUMBER,\n payload: { guessedNumber },\n});\n\nexport const updateInterviewerAnswer = (interviewerNumber, interviewerMessage) => ({\n type: actionTypes.UPDATE_INTERVIEWER_ANSWER,\n payload: { interviewerNumber, interviewerMessage },\n});\n\nexport const updateQuestionStatus = (isQuestionAsked) => ({\n type: actionTypes.UPDATE_QUESTION_STATUS,\n payload: { isQuestionAsked },\n});","import React, { Component } from 'react';\nimport { Button, Container, Grid, Input, Label, Segment } from 'semantic-ui-react';\nimport './style.css';\nimport { connect } from 'react-redux'\nimport {\n updateSets,\n updateStateOfSets,\n updateGuessedNumber,\n updateInterviewerAnswer,\n updateQuestionStatus,\n} from '../../../redux/actions/x-question'\n\nconst _nds = ['اول', 'دوم', 'سوم', 'چهارم', 'پنجم', 'ششم', 'هفتم', 'هشتم'];\nconst Q_number = 8;\n\nclass XSoali extends Component {\n constructor(props) {\n super(props);\n this.state = {\n XNumber: Array.from(Array(Q_number).keys(), x => 0),\n }\n this.askQuestion = this.askQuestion.bind(this);\n this.validateGuess = this.validateGuess.bind(this);\n this.restart = this.restart.bind(this);\n }\n\n validateGuess() {\n const { XNumber } = this.state;\n const { guessedNumber, interviewerNumber } = this.props;\n if (XNumber[guessedNumber - 1] == XNumber[interviewerNumber - 1]) {\n var flag = false;\n let iInit = Math.floor(Math.random() * 8);\n for (var i = iInit; i < iInit + Q_number; i++) {\n if ((i % Q_number) != guessedNumber - 1 && XNumber[(i % Q_number)] == XNumber[guessedNumber - 1]) {\n flag = true;\n this.props.updateInterviewerAnswer(i % Q_number + 1, 'ای بابا! طوری نیست!')\n }\n }\n if (!flag) {\n this.props.updateInterviewerAnswer(interviewerNumber, 'ایول بابا!')\n }\n } else {\n this.props.updateInterviewerAnswer(interviewerNumber, 'ای بابا! طوری نیست!')\n }\n }\n\n\n askQuestion() {\n const { XNumber } = this.state;\n const { sets } = this.props;\n this.props.updateQuestionStatus(true);\n\n for (let i = 0; i < Q_number; i++) {\n var set_i = sets[i].split(/[,\\-_. \\\\\\/+]+/).map(string => parseInt(string));\n for (let j = 0; j < Q_number; j++) {\n if (set_i.includes(j + 1)) {\n this.state.XNumber[j] += (2 * 3 ** (i + 1));\n } else if (sets[i] !== '') {\n this.state.XNumber[j] += (3 ** (i + 1));\n }\n }\n }\n\n let interviewerNumber, flag = false;\n let iInit = Math.floor(Math.random() * 8)\n\n for (let i = iInit; i < iInit + Q_number; i++) {\n for (let j = 0; j < Q_number; j++) {\n if (j == (i % Q_number)) continue;\n if (XNumber[i % Q_number] === XNumber[j]) {\n interviewerNumber = i % Q_number + 1;\n this.props.updateInterviewerAnswer(interviewerNumber, '')\n flag = true;\n break;\n }\n }\n if (flag) break;\n }\n\n if (!flag) {\n let randomNumber = Math.floor(Math.random() * 8) + 1;\n interviewerNumber = randomNumber;\n this.props.updateInterviewerAnswer(randomNumber, '');\n flag = true;\n }\n\n for (let i = 0; i < Q_number; i++) {\n var set_i = sets[i].split(/[,\\-_. \\\\\\/+]+/).map(string => parseInt(string));\n if (set_i.includes(interviewerNumber)) {\n this.props.updateStateOfSets(1, i);\n } else if (sets[i] !== '') {\n this.props.updateStateOfSets(2, i);\n }\n }\n }\n\n restart() {\n this.props.updateGuessedNumber('');\n this.props.updateInterviewerAnswer('', '');\n this.props.updateQuestionStatus(false);\n for (let i = 0; i < Q_number; i++) {\n this.props.updateSets('', i);\n this.props.updateStateOfSets(0, i);\n }\n this.setState({\n XNumber: Array.from(Array(Q_number).keys(), x => 0),\n })\n }\n\n\n handleSetsChange = (event) => {\n const { value, name } = event.target;\n this.props.updateSets(value, name)\n }\n\n handleGuessedNumberChange = (e, { value }) => {\n this.props.updateGuessedNumber(value)\n }\n\n\n render() {\n return (\n \n \n \n \n \n {Array.from(Array(Q_number).keys()).map(index => {\n return (\n <>\n \n \n \n \n {(this.props.stateOfSets[index] === 0) ? ' ؟ ' : (this.props.stateOfSets[index] === 1) ? 'ایول!' : 'نه :('}\n \n >\n );\n })}\n \n \n\n \n \n {!this.props.isQuestionAsked &&\n <>\n \n میتونی حداکثر ۸ تا مجموعه انتخاب کنی تا از آقای مجری بپرسی...\n \n \n \n از مجری بپرس\n \n \n \n از اول\n \n >\n }\n {this.props.isQuestionAsked && !this.props.interviewerMessage &&\n <>\n \n \n \n \n \n تایید\n \n >\n }\n {this.props.interviewerMessage &&\n <>\n \n {this.props.interviewerMessage}\n \n {'جواب ' + this.props.interviewerNumber + ' هست.'}\n \n \n \n دوباره بریم؟\n \n >\n }\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n sets: state.x_questions.sets,\n stateOfSets: state.x_questions.stateOfSets,\n guessedNumber: state.x_questions.guessedNumber,\n interviewerNumber: state.x_questions.interviewerNumber,\n interviewerMessage: state.x_questions.interviewerMessage,\n isQuestionAsked: state.x_questions.isQuestionAsked,\n})\n\n\nexport default connect(\n mapStateToProps,\n {\n updateSets,\n updateStateOfSets,\n updateGuessedNumber,\n updateInterviewerAnswer,\n updateQuestionStatus,\n }\n)(XSoali)","import React, { Component } from 'react';\nimport { Layer } from 'react-konva';\nimport { Spring, animated } from 'react-spring/renderprops-konva';\n\nconst scale = { x: 0.05, y: 0.05 }\n\nexport default class Car extends Component {\n constructor(props) {\n super(props);\n this.state = {\n x: null,\n y: null,\n tetha: null,\n image: null,\n dimensions: [2401, 1192], // danger!!!!\n }\n }\n\n componentDidMount() {\n this.loadImage();\n }\n\n componentWillUnmount() {\n this.image.removeEventListener('load', this.handleLoad);\n }\n\n loadImage() {\n this.image = new window.Image();\n this.image.src = process.env.PUBLIC_URL + '/automobile2.png';\n this.image.addEventListener('load', this.handleLoad);\n }\n\n handleLoad = () => {\n this.setState({\n image: this.image,\n });\n };\n\n updateSpring(x, y, tetha) {\n this.setState({\n x: x,\n y: y,\n tetha: tetha,\n })\n }\n\n render() {\n return (\n \n \n {props => (\n \n )}\n \n \n );\n }\n}","import React, { Component } from 'react';\nimport { Layer, Line } from 'react-konva';\n\nexport default class Road extends Component {\n\n updateRoad(road) {\n this.firstLine.points(road);\n this.secondLine.points(road);\n this.firstLine.getLayer().batchDraw();\n }\n\n render() {\n return (\n \n (this.firstLine = line)}\n />\n (this.secondLine = line)}\n />\n \n );\n }\n}","import React, { Component } from 'react';\nimport { Stage, } from 'react-konva';\nimport Car from '../../../components/SelfDrivingCar/car'\nimport Road from '../../../components/SelfDrivingCar/road'\nimport { Button, Container, Grid, Segment } from 'semantic-ui-react';\nimport {\n updateRoad_firstGame,\n updateState_firstGame,\n} from '../../../redux/actions/AI'\nimport { connect } from 'react-redux';\n\nconst width = window.innerWidth;\nconst height = window.innerHeight;\nconst initial_car_x = width / 2;\nconst initial_car_y = height * 0.8;\nconst initial_road_x = width / 2;\nconst initial_road_y = height;\nconst initial_tetha = -90;\nconst margin_of_road = 300;\nconst roadLength = 200;\nconst speed = 5;\nconst deltaTetha = 1;\n\nclass SelfDrivingCar extends Component {\n constructor(props) {\n super(props);\n this.state = {\n x: initial_car_x,\n y: initial_car_y,\n tetha: initial_tetha,\n road: [],\n state: 0,\n firstRotate: true,\n }\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.restart = this.restart.bind(this);\n this.resume = this.resume.bind(this);\n this.setInitialRoad = this.setInitialRoad.bind(this);\n this.updateCarRotation = this.updateCarRotation.bind(this);\n }\n\n componentDidMount() {\n this.restart();\n }\n\n setInitialRoad() {\n var initialRoad = [initial_road_x, initial_road_y, initial_road_x, initial_road_y - roadLength];\n for (var i = 2; i < 1000; i++) {\n initialRoad.push(Math.floor(Math.random() * ((width - margin_of_road) - margin_of_road + 1)) + margin_of_road);\n initialRoad.push(initial_road_y - i * roadLength);\n }\n this.updateRoad(initialRoad);\n this.props.updateRoad_firstGame(initialRoad)\n this.setState({\n road: initialRoad\n })\n }\n\n start() {\n this.props.updateState_firstGame(1);\n\n this.timer = setInterval(() => {\n var newRoad = [];\n this.state.road.forEach((y, i) => {\n if (i % 2 === 1) {\n y = y - speed * Math.sin(this.state.tetha / 180 * Math.PI);\n }\n newRoad.push(y);\n });\n\n this.updateCarRotation(newRoad);\n this.updateCar(this.state.x, this.state.y, this.state.tetha);\n this.updateRoad(newRoad);\n newRoad = this.deleteLastRoad(newRoad);\n\n this.setState({\n x: this.state.x + speed * Math.cos(this.state.tetha / 180 * Math.PI),\n road: newRoad,\n });\n }, 1000 / 30);\n }\n\n deleteLastRoad(newRoad) {\n if (newRoad[1] > initial_car_y + roadLength) {\n newRoad.shift();\n newRoad.shift();\n const newX = Math.floor(Math.random() * ((width - margin_of_road) - margin_of_road + 1)) + margin_of_road;\n const newY = newRoad[newRoad.length - 1] - roadLength;\n newRoad.push(newX);\n newRoad.push(newY);\n }\n return newRoad;\n }\n\n updateCarRotation(newRoad) {\n var deltaX = newRoad[2] - this.state.x;\n var flag = 0;\n if (deltaX > 0) flag = 1\n else if (deltaX < 0) flag = -1\n\n var rotateValue = deltaTetha;\n if (!this.state.firstRotate) {\n rotateValue /= 2;\n this.setState({ firstRotate: true })\n }\n\n if (this.state.tetha + flag * rotateValue > -180 &&\n this.state.tetha + flag * rotateValue < 0) {\n this.setState({\n tetha: this.state.tetha + flag * rotateValue,\n });\n }\n }\n\n\n updateCar(x, y, tetha) {\n this.car.updateSpring(x, y, tetha);\n }\n\n updateRoad(newRoad) {\n this.road.updateRoad(newRoad);\n }\n\n stop() {\n this.props.updateState_firstGame(2)\n clearInterval(this.timer);\n }\n\n resume() {\n this.props.updateState_firstGame(0)\n this.start();\n }\n\n restart() {\n this.props.updateState_firstGame(0)\n this.setState({\n x: initial_car_x,\n y: initial_car_y,\n tetha: initial_tetha,\n firstRotate: false,\n });\n this.updateCar(initial_car_x, initial_car_y, initial_tetha);\n this.setInitialRoad();\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n if (nextState.state !== this.state.state || this.state.state === 0) {\n return true;\n }\n return false;\n }\n\n render() {\n return (\n \n \n \n \n (this.road = road)} />\n (this.car = car)} />\n \n \n \n \n \n {this.props.state === 0 &&\n \n شروع!\n \n }\n {this.props.state === 1 &&\n \n توقف\n q\n }\n {this.props.state === 2 &&\n \n \n ادامه\n \n \n از اول\n \n \n }\n \n \n \n \n \n );\n }\n}\n\n\nconst mapStateToProps = (state) => ({\n road: state.AI.road1,\n state: state.AI.state1,\n})\n\nexport default connect(\n mapStateToProps,\n {\n updateRoad_firstGame,\n updateState_firstGame,\n }\n)(SelfDrivingCar)","import * as actionTypes from './actionTypes';\n\nexport const updateRoad_firstGame = (road) => ({\n type: actionTypes.UPDATE_ROAD_FIRST_GAME,\n payload: { road },\n});\n\nexport const updateState_firstGame = (state) => ({\n type: actionTypes.UPDATE_AI_FIRST_GAME_STATE,\n payload: { state },\n});\n\n////\n\nexport const updateKValue_secondGame = (KValue) => ({\n type: actionTypes.UPDATE_K_VALUE_SECOND_GAME,\n payload: { KValue },\n});\n\nexport const updateRoad_secondGame = (road) => ({\n type: actionTypes.UPDATE_ROAD_SECOND_GAME,\n payload: { road },\n});\n\nexport const updateState_secondGame = (state) => ({\n type: actionTypes.UPDATE_AI_SECOND_GAME_STATE,\n payload: { state },\n});\n\n\n/////\n","import React, { Component } from 'react';\nimport { Stage, } from 'react-konva';\nimport Car from '../../../components/SelfDrivingCar/car'\nimport Road from '../../../components/SelfDrivingCar/road'\nimport { connect } from 'react-redux';\nimport { Button, Input, Label, Container, Grid, Segment } from 'semantic-ui-react';\nimport {\n updateKValue_secondGame,\n updateRoad_secondGame,\n updateState_secondGame,\n} from '../../../redux/actions/AI'\n\nconst width = window.innerWidth;\nconst height = window.innerHeight;\nconst initial_car_x = width / 2;\nconst initial_car_y = height * 0.8;\nconst initial_road_x = width / 2;\nconst initial_road_y = height * 0.8;\nconst initial_tetha = -90;\nconst margin_of_road = 300;\nconst roadLength = 200;\nconst speed = 5;\n\nclass SelfDrivingCar2 extends Component {\n constructor(props) {\n super(props);\n this.state = {\n x: initial_car_x,\n y: initial_car_y,\n tetha: initial_tetha,\n road: this.props.road,\n isKValueValid: false,\n KValueErrorMessage: null,\n }\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.restart = this.restart.bind(this);\n this.resume = this.resume.bind(this);\n this.updateCar = this.updateCar.bind(this);\n this.updateRoad = this.updateRoad.bind(this);\n this.setInitialRoad = this.setInitialRoad.bind(this);\n this.getCarNewTetha = this.getCarNewTetha.bind(this);\n }\n\n componentDidMount() {\n this.restart();\n }\n\n setInitialRoad() {\n var initialRoad = [initial_road_x, initial_road_y + roadLength, initial_road_x, initial_road_y, initial_road_x, initial_road_y - roadLength];\n for (var i = 2; i < 1000; i++) {\n initialRoad.push(Math.floor(Math.random() * ((width - margin_of_road) - margin_of_road + 1)) + margin_of_road);\n initialRoad.push(initial_road_y - i * roadLength);\n }\n this.updateRoad(initialRoad);\n this.props.updateRoad_secondGame(initialRoad)\n this.setState({\n road: initialRoad,\n })\n }\n\n start() {\n this.props.updateState_secondGame(1);\n\n this.timer = setInterval(() => {\n var newRoad = [];\n this.state.road.forEach((y, i) => {\n if (i % 2 === 1) {\n y = y - speed * Math.sin(this.state.tetha / 180 * Math.PI);\n }\n newRoad.push(y);\n });\n\n newRoad = this.getUpdatedRoad(newRoad);\n let newTetha = this.getCarNewTetha(newRoad);\n this.setState({\n road: newRoad,\n x: this.state.x + speed * Math.cos(this.state.tetha / 180 * Math.PI),\n y: initial_car_y,\n tetha: newTetha,\n })\n this.updateRoad(newRoad);\n this.updateCar(this.state.x, initial_car_y, newTetha);\n\n }, 1000 / 30);\n }\n\n getUpdatedRoad(road) {\n if (road[1] >= initial_road_y + 2 * roadLength) {\n road.shift();\n road.shift();\n const newX = Math.floor(Math.random() * ((width - margin_of_road) - margin_of_road + 1)) + margin_of_road;\n const newY = road[road.length - 1] - roadLength;\n road.push(newX);\n road.push(newY);\n }\n return road;\n }\n\n getCarNewTetha(road) {\n const { KValue } = this.props;\n let road_x = road[2] + (road[3] - initial_road_y) * (road[4] - road[2]) / (road[3] - road[5]);\n let newTetha;\n newTetha = this.state.tetha - (this.state.x - road_x) * KValue;\n newTetha = Math.max(newTetha, -135)\n newTetha = Math.min(newTetha, -45)\n return newTetha;\n }\n\n updateCar(x, y, tetha) {\n this.car.updateSpring(x, y, tetha);\n }\n\n updateRoad(road) {\n this.road.updateRoad(road);\n }\n\n stop() {\n this.props.updateState_secondGame(2)\n clearInterval(this.timer);\n }\n\n resume() {\n this.props.updateState_secondGame(0)\n this.start();\n }\n\n restart() {\n this.props.updateState_secondGame(0)\n this.setState({\n isKValueValid: false,\n x: initial_car_x,\n y: initial_car_y,\n tetha: initial_tetha,\n });\n this.updateCar(initial_car_x, initial_car_y, initial_tetha);\n this.setInitialRoad();\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n if (nextProps.state !== this.props.state || this.props.state === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n handleChange = (e, { value }) => {\n if (value > 1 || value < 0) {\n this.setState({\n isKValueValid: false,\n KValueErrorMessage: 'یک عدد بین ۰ و ۱ وارد کن'\n })\n } else if (value === '') {\n this.setState({\n isKValueValid: false,\n KValueErrorMessage: null,\n })\n }\n else {\n this.setState({\n isKValueValid: true,\n KValueErrorMessage: null,\n })\n this.props.updateKValue_secondGame(value)\n }\n }\n\n render() {\n return (\n \n \n \n \n (this.road = road)} />\n (this.car = car)} />\n \n \n \n \n \n {this.props.state === 0 &&\n <>\n \n شروع\n \n \n یک عدد بین ۰ و ۱ وارد کن\n \n }\n labelPosition='right'\n placeholder=\"مقدار k رو وارد کن\"\n name='KValue'\n onChange={this.handleChange}\n />\n\n >\n }\n {this.props.state === 1 &&\n \n توقف\n \n }\n {this.props.state === 2 &&\n \n \n ادامه\n \n \n از اول\n \n \n }\n \n \n \n \n \n );\n }\n}\n\n\nconst mapStateToProps = (state) => ({\n road: state.AI.road2,\n KValue: state.AI.KValue,\n state: state.AI.state2,\n})\n\nexport default connect(\n mapStateToProps,\n {\n updateKValue_secondGame,\n updateRoad_secondGame,\n updateState_secondGame,\n }\n)(SelfDrivingCar2)","import * as actionTypes from './actionTypes';\n\nexport const updateState = (state) => ({\n type: actionTypes.UPDATE_FREEFALL_STATE,\n payload: { state },\n});\n\nexport const updatePageNumber = (pageNumber) => ({\n type: actionTypes.UPDATE_FREEFALL_PAGENUMBER,\n payload: { pageNumber },\n});\n\nexport const updatePower = (power) => ({\n type: actionTypes.UPDATE_FREEFALL_POWER,\n payload: { power },\n});\n\nexport const updateData = (dataX, dataY) => ({\n type: actionTypes.UPDATE_FREEFALL_DATA,\n payload: { dataX, dataY },\n});\n","import React, { Component } from 'react';\nimport { Stage, Group, Layer, Arrow, Text } from 'react-konva';\nimport {\n Segment,\n Container,\n Grid,\n Label,\n Button,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport URLImage from '../../../components/konva/URLImage/URLImage'\nimport {\n updateState,\n updatePageNumber,\n} from '../../../redux/actions/freeFall'\n\nconst width = window.innerWidth;\nconst height = window.innerHeight;\nconst rotateSpeed = 5;\nconst ground = height - 30;\nconst frame = 60;\nconst buildingWidth = 0.4 * width;\nconst initial_ball_x = buildingWidth - 20;\nconst initial_ball_y = 10;\nconst buildingHeight = ground - initial_ball_y;\nconst g = (9.8 * buildingHeight) / 100;\nconst ball_energy_decrement = 0.8;\nconst ball_scale = { x: 0.01, y: 0.01 };\n\nclass FreeFall extends Component {\n constructor(props) {\n super(props);\n this.state = {\n y: initial_ball_y,\n starting_y: initial_ball_y,\n v: 0,\n tetha: 0,\n passedTime: 0,\n isBallFalling: 1, // gets 1 or -1\n isBallLastFall: false,\n isBallHittedGround: false,\n isBallDragging: false,\n };\n this.restart = this.restart.bind(this);\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n }\n\n componentDidMount() {\n this.restart();\n }\n\n handleChange = (e, { name, value }) => this.setState({ [name]: value });\n\n restart() {\n this.props.updateState(0);\n clearInterval(this.timer);\n this.setState({\n y: initial_ball_y,\n starting_y: initial_ball_y,\n v: 0,\n tetha: 0,\n passedTime: 0,\n isBallFalling: 1, // gets 1 or -1\n isBallLastFall: false,\n isBallHittedGround: false,\n isBallDragging: false,\n });\n }\n\n start() {\n this.props.updateState(1);\n\n this.timer = setInterval(() => {\n const y = Math.min(this.state.y + this.state.v / frame, ground);\n const tetha =\n this.state.tetha +\n rotateSpeed * this.state.isBallFalling * (this.state.v / frame);\n const v = this.state.v + g / frame;\n const passedTime = !this.state.isBallHittedGround\n ? this.state.passedTime + 1000 / frame\n : this.state.passedTime;\n\n this.setState({\n y,\n tetha,\n v,\n passedTime,\n });\n\n if (y + v / frame >= ground) {\n this.setState({\n isBallFalling: -this.state.isBallFalling,\n isBallHittedGround: true,\n v: -ball_energy_decrement * v,\n });\n\n if (this.state.isBallLastFall) {\n this.setState({\n y: ground,\n v: 0,\n tetha: 0,\n });\n }\n }\n if (v < 0 && v + g / frame >= 0 && ground - y < 10) {\n this.setState({\n isBallLastFall: true,\n });\n }\n }, 1000 / frame);\n }\n\n stop() {\n this.props.updateState(2);\n clearInterval(this.timer);\n }\n\n render() {\n console.log(this.props.pageNumber)\n return (\n < Container textAlign='center' >\n \n \n \n \n \n \n \n \n \n \n {\n let newY = pos.y;\n if (newY < initial_ball_y) {\n newY = initial_ball_y;\n } else if (pos.y > ground) {\n newY = ground;\n }\n this.setState({\n starting_y: newY,\n y: newY,\n })\n return ({\n x: initial_ball_x,\n y: newY,\n })\n }}\n ref={(ball) => (this.ball = ball)}\n src={process.env.PUBLIC_URL + '/soccerBall.png'}\n scale={ball_scale}\n x={initial_ball_x}\n y={this.state.y}\n offsetX={0.5}\n offsetY={0.5}\n rotation={this.state.tetha}\n />\n \n \n \n \n \n\n\n \n \n قبل از پرتاب کردن توپ، میتونی مکان اون رو بالا و پایین کنی!\n \n \n {this.state.isBallHittedGround\n ? ((ground - this.state.starting_y) / buildingHeight * 100).toFixed(2)\n : ((this.state.y - this.state.starting_y) / buildingHeight * 100).toFixed(2)}\n مسافت طی شده از نقطهی پرتاب:\n \n \n {(this.state.passedTime / 1000).toFixed(2)}\n زمان گذشته از شروع پرتاب:\n \n\n \n {this.props.state === 0 &&\n \n بپرتاب!\n \n }\n {this.props.state === 1 && !this.state.isBallHittedGround &&\n <>\n \n وایسا!\n \n >\n }\n {(this.props.state === 2 || (this.props.state === 1 && this.state.isBallHittedGround)) &&\n <>\n \n دوباره بریم؟\n \n >\n }\n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n state: state.freeFall.state,\n passedTime: state.freeFall.passedTime,\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateState,\n updatePageNumber,\n }\n)(FreeFall)","function average(X) {\n let sum = 0;\n for (let i = 0; i < X.length; i++) {\n sum += parseFloat(X[i]);\n }\n return sum / X.length\n}\n\nfunction covariance(X, Y) {\n let sum = 0;\n let averageX = average(X);\n let averageY = average(Y);\n for (let i = 0; i < X.length; i++) {\n sum += (parseFloat(X[i]) - averageX) * (parseFloat(Y[i]) - averageY)\n }\n return sum / (X.length)\n}\n\nfunction standardDeviation(X) {\n let sum = 0;\n let averageX = average(X);\n for (let i = 0; i < X.length; i++) {\n sum += (parseFloat(X[i]) - averageX) ** 2;\n }\n return Math.sqrt(sum / X.length);\n}\n\nexport function correlation(X, Y) {\n return covariance(X, Y) / standardDeviation(X) / standardDeviation(Y)\n}","import React, { Component } from 'react';\nimport { Segment } from 'semantic-ui-react';\nimport { Scatter } from 'react-chartjs-2';\n\nvar data = {\n labels: ['Scatter'],\n datasets: [\n {\n label: 'دادهها',\n fill: true,\n backgroundColor: 'rgba(75,192,192,0.4)',\n pointBorderColor: 'rgba(75,192,192,1)',\n pointBackgroundColor: '#fff',\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: 'rgba(75,192,192,1)',\n pointHoverBorderColor: 'rgba(220,220,220,1)',\n pointHoverBorderWidth: 2,\n pointRadius: 5,\n pointHitRadius: 10,\n data: [\n ]\n }\n ]\n};\n\nfunction getData(dataX, dataY) {\n let newData = []\n for (let i = 0; i < dataX.length; i++) {\n if (dataX[i] && dataY[i]) {\n newData.push({ x: dataX[i], y: dataY[i] })\n }\n }\n data.datasets[0].data = newData;\n return data;\n}\n\nexport default class Chart extends Component {\n\n componentDidMount() {\n this.timer = setInterval(() => {\n data = getData(this.props.dataX, this.props.dataY);\n this.forceUpdate();\n }, (500));\n }\n\n render() {\n return (\n \n \n \n );\n }\n}","import React, { Component } from 'react';\nimport { Container, Grid, Label, Button } from 'semantic-ui-react'\nimport { Slider } from 'react-semantic-ui-range';\nimport { connect } from 'react-redux';\nimport { correlation } from './Stat'\nimport {\n updateData,\n updatePower,\n updateState,\n updatePageNumber,\n} from '../../../redux/actions/freeFall'\nimport Chart from './Plot'\n\nconst width = window.innerWidth;\nconst height = window.innerHeight;\nconst data_number = 10;\n\n\nclass PlotPage extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n correlation: 0,\n }\n }\n\n handleDataXChange = (event) => {\n const { name, value } = event.target;\n var newDataX = this.props.dataX;\n newDataX[name] = value;\n this.props.updateData(newDataX, this.props.dataY)\n this.setState({\n correlation:\n correlation(\n this.props.dataX.map(x =>\n (x ** this.props.power)\n ),\n this.props.dataY\n )\n })\n }\n\n handleDataYChange = (event) => {\n const { name, value } = event.target;\n var newDataY = this.props.dataY;\n newDataY[name] = value;\n this.props.updateData(this.props.dataX, newDataY)\n this.setState({\n correlation:\n correlation(\n this.props.dataX.map(x =>\n (x ** this.props.power)\n ),\n this.props.dataY\n )\n })\n }\n\n slider_settings = {\n start: this.props.power,\n min: 0.05,\n max: 3,\n step: 0.05,\n onChange: power => {\n this.props.updatePower(power)\n this.setState({\n correlation:\n correlation(\n this.props.dataX.map(x =>\n (x ** power)\n ),\n this.props.dataY\n )\n })\n }\n };\n\n render() {\n return (\n \n \n \n \n \n \n \n {this.props.Xlabel}\n \n \n {this.props.Ylabel}\n \n \n {Array.from(Array(data_number).keys()).map(index => {\n return (\n \n \n \n \n );\n })}\n \n جدول دادهها\n \n \n\n \n \n (x ** this.props.power)\n )}\n dataY={this.props.dataY}\n />\n \n \n \n \n {(this.props.power).toFixed(2)}\n پارامتر توان:\n \n \n {isNaN(this.state.correlation) ? 'خطا' : ((this.state.correlation ** 4) * 100).toFixed(3)}\n امتیاز:\n \n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state, ownProps) => ({\n dataX: state.freeFall.dataX,\n dataY: state.freeFall.dataY,\n power: state.freeFall.power,\n Xlabel: ownProps.Xlabel,\n Ylabel: ownProps.Ylabel,\n XlabelChar: ownProps.XlabelChar,\n YlabelChar: ownProps.YlabelChar,\n})\n\nexport default connect(\n mapStateToProps,\n {\n updateData,\n updatePower,\n updateState,\n updatePageNumber,\n }\n)(PlotPage)\n\n\n","import React, { Component } from 'react';\nimport {\n Container,\n Button,\n Tab,\n} from 'semantic-ui-react';\nimport {\n updatePageNumber,\n} from '../../../redux/actions/freeFall'\nimport FreeFall from './FreeFall'\nimport PlotPage from './PlotPage'\nimport { connect } from 'react-redux';\n\nclass FreeFallGame extends Component {\n render() {\n return (\n \n {\n this.props.pageNumber === 0 &&\n <>\n \n this.props.updatePageNumber(1)\n }\n >\n نمودار\n \n >\n }\n {\n this.props.pageNumber === 1 &&\n <>\n \n this.props.updatePageNumber(0)\n }\n >\n اندازهگیری\n \n >\n }\n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n pageNumber: state.freeFall.pageNumber,\n})\n\nexport default connect(\n mapStateToProps,\n {\n updatePageNumber\n }\n)(FreeFallGame)","import React, { Component } from 'react';\nimport {\n Container,\n} from 'semantic-ui-react';\nimport PlotPage from './PlotPage'\nimport '../style.css';\n\nexport default class SpaceGame extends Component {\n render() {\n return (\n \n \n \n )\n }\n}","import * as actionTypes from './actionTypes';\n\nexport const updateHashData = (hashData) => ({\n type: actionTypes.UPDATE_HASH_DATA,\n payload: { hashData },\n});\n\nexport const updateLoading = (isLoading) => ({\n type: actionTypes.UPDATE_BLOCKCHAIN_LOADING,\n payload: { isLoading },\n});\n\nexport const updatePageNumber = (pageNumber) => ({\n type: actionTypes.UPDATE_PAGE_NUMBER,\n payload: { pageNumber },\n});\n\nexport const updateFirstAttemp = (isFirstAttemp) => ({\n type: actionTypes.UPDATE_FIRST_ATTEMP,\n payload: { isFirstAttemp },\n});\n\n/////\n\nexport const updateBlockData = (blockData) => ({\n type: actionTypes.UPDATE_BLOCK_DATA,\n payload: { blockData },\n});\n\nexport const updateBlockNonce = (blockNonce) => ({\n type: actionTypes.UPDATE_BLOCK_NONCE,\n payload: { blockNonce },\n});\n\nexport const updateBlockMining = (isBlockMining) => ({\n type: actionTypes.UPDATE_BLOCK_MINING,\n payload: { isBlockMining },\n});\n\nexport const updateBlockChainData = (blockChainData, index) => ({\n type: actionTypes.UPDATE_BLOCKCHAIN_DATA,\n payload: { blockChainData, index },\n});\n\nexport const updateBlockChainNonce = (blockChainNonce, index) => ({\n type: actionTypes.UPDATE_BLOCKCHAIN_NONCE,\n payload: { blockChainNonce, index },\n});\n\nexport const updateBlockChainMining = (isBlockChainMining, index) => ({\n type: actionTypes.UPDATE_BLOCKCHAIN_MINING,\n payload: { isBlockChainMining, index },\n});\n\n/////////\n\nexport const updatePrivateKey = (privateKey) => ({\n type: actionTypes.UPDATE_SIGNATURE_PRIVATEKEY,\n payload: { privateKey },\n});\n\nexport const updatePublicKey = (publicKey) => ({\n type: actionTypes.UPDATE_SIGNATURE_PUBLICKEY,\n payload: { publicKey },\n});\n\n///////\n\nexport const updateMessage = (message) => ({\n type: actionTypes.UPDATE_MESSAGE,\n payload: { message },\n});\n\nexport const updateMessageSignature = (messageSignature) => ({\n type: actionTypes.UPDATE_MESSAGE_SIGNATURE,\n payload: { messageSignature },\n});\n\n///////\n\nexport const updateNewMessage = (newMessage) => ({\n type: actionTypes.UPDATE_NEW_MESSAGE,\n payload: { newMessage },\n});\n\nexport const updateVerificationStatus = (isVerified) => ({\n type: actionTypes.UPDATE_VERIFICATION_STATUS,\n payload: { isVerified },\n});","import React, { Component } from 'react';\nimport { sha256 } from 'js-sha256';\nimport {\n Input,\n Container,\n Grid,\n Form,\n TextArea,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport {\n updateHashData,\n} from '../../../redux/actions/blockChain'\n\nclass HashPane extends Component {\n handleChange = (event) => {\n const { value } = event.target;\n this.props.updateHashData(value)\n }\n\n render() {\n return (\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n hashData: state.blockChain.hashData,\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateHashData,\n }\n)(HashPane)\n","export function isHashValid(hash) {\n if (hash[0] == '0' && hash[1] == '0' && hash[2] == '0') return true;\n return false;\n}","import React, { Component } from 'react';\nimport { sha256 } from 'js-sha256';\nimport {\n Input,\n Container,\n Grid,\n Form,\n TextArea,\n Segment,\n Label,\n Button,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport { isHashValid } from './utilities'\nimport {\n updateBlockData,\n updateBlockNonce,\n updateBlockMining,\n} from '../../../redux/actions/blockChain'\n\nconst MAXIMUM_ITERATION = 10000;\n\nclass HashPane extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isMining: false,\n };\n this.mine = this.mine.bind(this)\n }\n\n mine() {\n for (let i = 0; i < MAXIMUM_ITERATION; i++) {\n if (isHashValid(sha256.hex(this.props.blockData + i))) {\n this.props.updateBlockNonce(i);\n break;\n }\n }\n return -1;\n }\n\n getColor() {\n return isHashValid(sha256.hex(this.props.blockData + this.props.blockNonce)) ?\n 'green' : 'red'\n }\n\n handleDataChange = (event) => {\n const { value } = event.target;\n this.props.updateBlockData(value)\n }\n\n handleNonceChange = (event) => {\n const { value } = event.target;\n this.props.updateBlockNonce(value);\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n {'بلوک'}\n \n \n \n عدد:\n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n استخراج کن!\n */}\n \n\n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n blockData: state.blockChain.blockData,\n blockNonce: state.blockChain.blockNonce,\n isBlockMining: state.blockChain.isBlockMining,\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateBlockData,\n updateBlockNonce,\n updateBlockMining,\n }\n)(HashPane)\n","import React, { Component } from 'react';\nimport { sha256 } from 'js-sha256';\nimport {\n Input,\n Container,\n Grid,\n Form,\n TextArea,\n Segment,\n Label,\n Button,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport { isHashValid } from './utilities'\nimport {\n updateBlockChainData,\n updateBlockChainNonce,\n updateBlockChainMining,\n} from '../../../redux/actions/blockChain'\n\nconst MAXIMUM_ITERATION = 100000;\nconst NUMBER_OF_BLOCKS = 5;\nconst _nds = ['اول', 'دوم', 'سوم', 'چهارم', 'پنجم', 'ششم', 'هفتم', 'هشتم'];\nconst width = window.innerWidth;\nconst height = window.innerHeight;\n\nclass HashPane extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isMining: false,\n };\n this.mine = this.mine.bind(this)\n this.getOutput = this.getHash.bind(this)\n }\n\n handleDataChange = (event) => {\n const { value, name } = event.target;\n this.props.updateBlockChainData(value, name)\n }\n\n handleNonceChange = (event) => {\n const { value, name } = event.target;\n this.props.updateBlockChainNonce(value, name);\n }\n\n mine(index) {\n this.props.updateBlockChainMining(true, index)\n for (let i = 0; i < MAXIMUM_ITERATION; i++) {\n console.log(i)\n if (isHashValid(sha256.hex(this.props.blockChainData[index] + this.getHash(index - 1) + i))) {\n setTimeout(\n () => {\n this.props.updateBlockChainNonce(i, index);\n this.props.updateBlockChainMining(false, index)\n this.forceUpdate()\n }\n , 2000\n )\n break;\n }\n }\n return -1;\n }\n\n getHash(index) {\n if (index == -1) return '0000000000000000000000000000000000000000000000000000000000000000';\n const { blockChainData, blockChainNonce } = this.props;\n return sha256.hex(blockChainData[index] + this.getHash(index - 1) + blockChainNonce[index])\n }\n\n\n getColor(index) {\n if (isHashValid(this.getHash(index))) {\n return 'green'\n } else {\n return 'red'\n }\n }\n\n getNonce(index) {\n return this.props.blockChainNonce[index]\n }\n\n render() {\n return (\n \n \n \n \n \n \n {Array.from(Array(NUMBER_OF_BLOCKS).keys()).map(index => {\n return (\n \n \n {'بلوک ' + _nds[index]}\n \n \n \n عدد:\n \n \n \n \n \n \n \n \n هش نفر قبل:\n \n \n \n \n \n \n \n \n \n \n \n this.mine(index)}\n >\n استخراج کن!\n \n \n );\n })}\n \n \n \n \n \n \n )\n }\n\n}\n\nconst mapStateToProps = (state) => ({\n blockChainData: state.blockChain.blockChainData,\n blockChainNonce: state.blockChain.blockChainNonce,\n isBlockChainMining: state.blockChain.isBlockChainMining,\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateBlockChainData,\n updateBlockChainNonce,\n updateBlockChainMining,\n }\n)(HashPane)\n\n\n","import React, { Component } from 'react';\nimport { sha256 } from 'js-sha256';\nimport {\n Input,\n Container,\n Grid,\n Form,\n Segment,\n Label,\n Button,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport { Crypt, RSA } from 'hybrid-crypto-js';\nimport {\n updatePrivateKey,\n updatePublicKey,\n updateLoading,\n} from '../../../redux/actions/blockChain'\n\nvar rsa = new RSA()\n\nclass PublicPrivateKeyPane extends Component {\n constructor(props) {\n super(props);\n this.generateNewKey = this.generateNewKey.bind(this)\n }\n\n generateNewKey() {\n this.props.updateLoading(true)\n rsa.generateKeyPairAsync().then(keyPair => {\n this.props.updatePrivateKey(keyPair.privateKey)\n this.props.updatePublicKey(keyPair.publicKey)\n this.props.updateLoading(false)\n });\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n {'کلیدهای خصوصی و عمومی'}\n \n \n \n کلید خصوصی:\n \n \n \n \n \n کلید عمومی:\n \n \n \n \n \n \n \n یه جفت کلید جدید بساز!\n \n \n\n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n privateKey: state.blockChain.privateKey,\n publicKey: state.blockChain.publicKey,\n isLoading: state.blockChain.isLoading,\n});\n\nexport default connect(\n mapStateToProps,\n {\n updatePrivateKey,\n updatePublicKey,\n updateLoading,\n }\n)(PublicPrivateKeyPane)\n","import React, { Component } from 'react';\nimport { sha256 } from 'js-sha256';\nimport {\n Input,\n Container,\n Grid,\n Form,\n TextArea,\n Segment,\n Label,\n Button,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport { isHashValid } from './utilities'\nimport { Crypt, RSA } from 'hybrid-crypto-js';\nimport {\n updateMessage,\n updateMessageSignature,\n updateLoading,\n} from '../../../redux/actions/blockChain'\n\nvar crypt = new Crypt();\n\nclass PublicPrivateKeyPane extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isMining: false,\n };\n this.handleChange = this.handleChange.bind(this)\n this.sign = this.sign.bind(this)\n }\n\n sign() {\n this.props.updateLoading(true)\n var signature = crypt.signature(this.props.privateKey, this.props.message);\n this.props.updateMessageSignature(signature)\n this.props.updateLoading(false)\n }\n\n handleChange = (event) => {\n const { value } = event.target;\n this.props.updateMessage(value)\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n {'امضا'}\n \n \n \n \n کلید خصوصی:\n \n \n \n \n \n \n \n امضاش کن!\n \n \n \n \n \n \n\n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n privateKey: state.blockChain.privateKey,\n message: state.blockChain.message,\n messageSignature: state.blockChain.messageSignature,\n isLoading: state.blockChain.isLoading,\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateMessage,\n updateMessageSignature,\n updateLoading,\n }\n)(PublicPrivateKeyPane)\n","import React, { Component } from 'react';\nimport { sha256 } from 'js-sha256';\nimport {\n Input,\n Container,\n Grid,\n Form,\n TextArea,\n Segment,\n Label,\n Button,\n} from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport { isHashValid } from './utilities'\nimport { Crypt, RSA } from 'hybrid-crypto-js';\nimport {\n updateNewMessage,\n updateLoading,\n updateVerificationStatus,\n updateFirstAttemp,\n} from '../../../redux/actions/blockChain'\n\nvar crypt = new Crypt();\n\nclass VerifyPane extends Component {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this)\n this.verify = this.verify.bind(this)\n }\n\n verify() {\n this.props.updateLoading(true);\n this.props.updateFirstAttemp(false)\n\n var verify = crypt.verify(\n this.props.publicKey,\n this.props.messageSignature,\n this.props.newMessage,\n )\n this.props.updateVerificationStatus(verify);\n this.props.updateLoading(false)\n }\n\n handleChange = (event) => {\n const { value } = event.target;\n this.props.updateNewMessage(value)\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n {'تایید امضا'}\n \n \n \n \n کلید عمومی:\n \n \n \n \n \n \n امضای پیغام:\n \n \n \n \n \n \n \n معتبره؟\n \n \n\n \n \n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n isFirstAttemp: state.blockChain.isFirstAttemp,\n isVerified: state.blockChain.isVerified,\n publicKey: state.blockChain.publicKey,\n newMessage: state.blockChain.newMessage,\n messageSignature: state.blockChain.messageSignature,\n isLoading: state.blockChain.isLoading,\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateVerificationStatus,\n updateNewMessage,\n updateLoading,\n updateFirstAttemp,\n }\n)(VerifyPane)\n","import React, { Component } from 'react';\nimport {\n Container,\n Button,\n Tab,\n} from 'semantic-ui-react';\nimport {\n updatePageNumber,\n} from '../../../redux/actions/blockChain'\nimport PublicPrivateKeyPane from './PublicPrivateKeyPane'\nimport SignPane from './SignPane'\nimport VerifyPane from './VerifyPane'\nimport '../style.css';\nimport { connect } from 'react-redux';\n\nclass MessageGame extends Component {\n constructor(props) {\n super(props);\n this.state = {\n pageNumber: 1,\n }\n }\n\n render() {\n return (\n \n {this.props.pageNumber === 0 &&\n \n }\n {this.props.pageNumber === 1 &&\n \n }\n {this.props.pageNumber === 2 &&\n \n }\n \n this.props.updatePageNumber(0)\n }\n >\n کلیدها\n \n\n this.props.updatePageNumber(1)\n }\n >\n امضا\n \n\n this.props.updatePageNumber(2)\n }\n >\n تایید امضا\n \n \n \n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n pageNumber: state.blockChain.pageNumber,\n})\n\nexport default connect(\n mapStateToProps,\n {\n updatePageNumber,\n }\n)(MessageGame)","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { ActionCreators as UndoActionCreators } from 'redux-undo';\nimport {\n createEdge,\n createVertex,\n deselectEdge,\n deselectVertex,\n resetGraph,\n selectEdge,\n selectVertex,\n updateAddedFlux,\n updateEdge,\n updateVertex,\n} from '../../../redux/actions/graph';\nimport gameTypes from '../gameTypes';\nimport PipelineGraph from './PipelineGraph';\nimport PipelineTable from './PipelineTable';\n\nconst panes = [\n {\n menuItem: 'Graph',\n render: (props) => {\n return ;\n },\n },\n {\n menuItem: 'Table',\n render: (props) => {\n return ;\n },\n },\n];\n\nclass SecondPipelineGraph extends Component {\n render() {\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n vertices: state.secondPipelineGraph.present.secondPipelineVertices,\n edges: state.secondPipelineGraph.present.secondPipelineEdges,\n addedFlux: state.secondPipelineGraph.present.addedFlux,\n s: state.secondPipelineGraph.present.s,\n t: state.secondPipelineGraph.present.t,\n canUndo: state.secondPipelineGraph.past.length > 0,\n canRedo: state.secondPipelineGraph.future.length > 0,\n});\n\nexport default connect(mapStateToProps, {\n createVertex,\n createEdge,\n updateVertex,\n updateEdge,\n selectEdge,\n selectVertex,\n deselectEdge,\n deselectVertex,\n resetGraph,\n updateAddedFlux,\n onUndo: UndoActionCreators.undo,\n onRedo: UndoActionCreators.redo,\n})(SecondPipelineGraph);\n","import React, { Component } from 'react';\nimport URLImage from '../konva/URLImage/URLImage';\nimport { Transformer, Group, Rect } from 'react-konva';\n\nclass Protractor extends Component {\n constructor(props) {\n super(props);\n this.checkTransform = this.checkTransform.bind(this);\n }\n\n componentDidUpdate() {\n this.checkTransform();\n }\n\n checkTransform() {\n if (this.props.isSelected) {\n this.transformer.nodes([this.protractor.konvaNode]);\n this.transformer.getLayer().batchDraw();\n }\n }\n\n render() {\n return (\n <>\n \n (this.protractor = protractor)}\n />\n {this.props.isSelected && (\n (this.transformer = transformer)}\n />\n )}\n \n >\n );\n }\n}\n\nexport default Protractor;\n","import React, { Component } from 'react';\nimport Protractor from '../../../components/physics/protractor';\nimport { Stage, Layer, Circle, Line } from 'react-konva';\nimport URLImage from '../../../components/konva/URLImage/URLImage';\nimport _ from 'lodash';\nimport {\n updateProtractor,\n addDot,\n resetMap,\n updateLittleDots,\n drawLine,\n} from '../../../redux/actions/protractor';\nimport { connect } from 'react-redux';\nimport { Icon } from 'semantic-ui-react';\n\nclass Map extends Component {\n constructor(props) {\n super(props);\n\n this.drawLine = this.drawLine.bind(this);\n\n this.state = {\n widthScale: window.innerWidth / 671,\n heightScale: window.innerHeight / 381,\n protractorIsSelected: false,\n\n dots: [\n {\n x: 550,\n y: 286,\n },\n ],\n };\n }\n\n onProtractorClick() {\n this.setState({ protractorIsSelected: !this.state.protractorIsSelected });\n }\n\n onStageClicked(e) {\n if (this.target === e.target.getStage()) {\n this.setState({ protractorIsSelected: false });\n }\n }\n\n onProtractorDragEnd(e) {\n this.props.updateProtractor({\n x: e.target.attrs.x / this.state.widthScale,\n y: e.target.attrs.y / this.state.heightScale,\n });\n }\n\n onMapClick(e) {\n let dotX = this.stage.getPointerPosition().x;\n let dotY = this.stage.getPointerPosition().y;\n\n console.log('????', e);\n\n if (\n e.target.attrs.src === '/map.jpeg'\n ) {\n this.props.addDot({\n x: dotX / this.state.widthScale,\n y: dotY / this.state.heightScale,\n });\n }\n }\n\n reset() {\n this.props.resetMap();\n }\n\n drawLine(id) {\n const dot = _.find(this.props.dots, { id: id });\n let index = 0;\n this.props.littleDots.forEach((littleDot) => {\n if (littleDot.isSelected) {\n this.props.drawLine(dot, littleDot);\n this.props.updateLittleDots(index, {\n isSelected: false,\n });\n }\n index++;\n });\n }\n\n render() {\n return (\n <>\n (this.stage = stage)}\n >\n \n \n {this.props.lines.map((line) => {\n return (\n \n );\n })}\n {\n this.props.updateLittleDots(0, {\n isSelected: !this.props.littleDots[0].isSelected,\n });\n }}\n onTouchStart={() => {\n this.props.updateLittleDots(0, {\n isSelected: !this.props.littleDots[0].isSelected,\n });\n }}\n />\n {this.props.dots.map((dot) => {\n return (\n {\n this.drawLine(dot.id);\n }}\n onTouchStart={() => {\n this.drawLine(dot.id);\n }}\n />\n );\n })}\n\n (this.node = node)}\n x={this.props.protractor.x * this.state.widthScale}\n y={this.props.protractor.y * this.state.heightScale}\n width={300 * this.state.widthScale}\n height={150 * this.state.heightScale}\n isSelected={this.state.protractorIsSelected}\n onClick={this.onProtractorClick.bind(this)}\n onDragEnd={this.onProtractorDragEnd.bind(this)}\n onTouchEnd={this.onProtractorClick.bind(this)}\n />\n \n \n \n >\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n protractor: state.protractor.protractor,\n dots: state.protractor.dots,\n littleDots: state.protractor.littleDots,\n lines: state.protractor.lines,\n});\n\nexport default connect(mapStateToProps, {\n updateProtractor,\n resetMap,\n addDot,\n updateLittleDots,\n drawLine,\n})(Map);\n","import * as actionTypes from './actionTypes';\nimport makeId from '../../utils/makeId';\n\nexport const updateProtractor = (props) => ({\n type: actionTypes.UPDATE_PROTRACTOR,\n payload: { props },\n});\n\nexport const resetMap = () => ({\n type: actionTypes.RESET_MAP,\n payload: {},\n});\n\nexport const addDot = (newDot) => ({\n type: actionTypes.ADD_DOT,\n payload: { id: makeId(), newDot },\n});\n\nexport const updateLittleDots = (index, props) => ({\n type: actionTypes.UPDATE_LITTLE_DOTS,\n payload: { index, props },\n});\n\nexport const updateDot = (id, props) => ({\n type: actionTypes.UPDATE_DOTT,\n payload: { id, props },\n});\n\nexport const drawLine = (from, to) => ({\n type: actionTypes.DRAW_LINE,\n payload: { from, to },\n});\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport {\n createEdge,\n createVertex,\n deselectEdge,\n deselectVertex,\n removeSelectedEdges,\n removeSelectedVertices,\n selectEdge,\n selectVertex,\n updateCost,\n updateEdge,\n updateVertex,\n} from '../../../redux/actions/graph';\nimport Graph from '../GameTheoryGraph';\nimport gameTypes from '../gameTypes';\nimport './style.css';\n\nclass FirstStreetGraph extends Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n console.log('++++', this.props.edges);\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n vertices: state.firstTrafficGraph.firstVerices,\n edges: state.firstTrafficGraph.firstEdges,\n wholeCost: state.firstTrafficGraph.firstEdgesCostSum,\n});\n\nexport default connect(mapStateToProps, {\n createVertex,\n createEdge,\n updateVertex,\n selectEdge,\n selectVertex,\n deselectEdge,\n deselectVertex,\n removeSelectedEdges,\n removeSelectedVertices,\n updateEdge,\n updateCost,\n})(FirstStreetGraph);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport {\n createEdge,\n createVertex,\n deselectEdge,\n deselectVertex,\n removeSelectedEdges,\n removeSelectedVertices,\n selectEdge,\n selectVertex,\n updateCost,\n updateEdge,\n updateVertex,\n} from '../../../redux/actions/graph';\nimport Graph from '../GameTheoryGraph';\nimport gameTypes from '../gameTypes';\nimport './style.css';\n\nclass SecondStreetGraph extends Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n vertices: state.secondTrafficGraph.secondVerices,\n edges: state.secondTrafficGraph.secondEdges,\n wholeCost: state.secondTrafficGraph.secondEdgesCostSum,\n});\n\nexport default connect(mapStateToProps, {\n createVertex,\n createEdge,\n updateVertex,\n selectEdge,\n selectVertex,\n deselectEdge,\n deselectVertex,\n removeSelectedEdges,\n removeSelectedVertices,\n updateEdge,\n updateCost,\n})(SecondStreetGraph);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport {\n createEdge,\n createVertex,\n deselectEdge,\n deselectVertex,\n removeSelectedEdges,\n removeSelectedVertices,\n selectEdge,\n selectVertex,\n updateCost,\n updateEdge,\n updateVertex,\n} from '../../../redux/actions/graph';\nimport Graph from '../GameTheoryGraph';\nimport gameTypes from '../gameTypes';\nimport './style.css';\n\nclass ThirdStreetGraph extends Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n vertices: state.thirdTrafficGraph.thirdVerices,\n edges: state.thirdTrafficGraph.thirdEdges,\n wholeCost: state.thirdTrafficGraph.thirdEdgesCostSum,\n});\n\nexport default connect(mapStateToProps, {\n createVertex,\n createEdge,\n updateVertex,\n selectEdge,\n selectVertex,\n deselectEdge,\n deselectVertex,\n removeSelectedEdges,\n removeSelectedVertices,\n updateEdge,\n updateCost,\n})(ThirdStreetGraph);\n","export const ROOT =\n process.env.NODE_ENV === 'production'\n ? 'https://rastaiha.ir/api/'\n : 'https://rastaiha.ir/api/';\n\nexport const SIGNUP = ROOT.concat('auth/individualSignup/');\nexport const GROUP_SIGNUP = ROOT.concat('auth/groupSignup/');\nexport const LOGIN = ROOT.concat('auth/token/obtain/');\nexport const CHANGE_PASSWORD = ROOT.concat('auth/changePass/');\nexport const LOGOUT = ROOT.concat('auth/logout/');\nexport const CHECK_PAYMENT = ROOT.concat('auth/pay/');\nexport const SEND_SOLUTION = ROOT.concat('auth/answerFile/');\nexport const CREATE_FSM = ROOT.concat('fsm/fsm/');\nexport const CREATE_STATE = ROOT.concat('fsm/page/');\nexport const CREATE_WIDGET = ROOT.concat('fsm/widget/');\nexport const EDIT_EDGES = ROOT.concat('fsm/editedges/');\nexport const GET_STATE = ROOT.concat('fsm/state/');\nexport const GET_PAGES = ROOT.concat('fsm/page/');\nexport const SUBMIT_TEAM = ROOT.concat('fsm/submitteam/');\nexport const SET_FIRST_CURRENT_PAGE = ROOT.concat(\n 'fsm/set_first_current_page/'\n);\nexport const GET_USER_INFO = ROOT.concat('auth/userInfo/');\nexport const GET_TEAMS = ROOT.concat('auth/teams/');\nexport const GET_TEAM = ROOT.concat('auth/teamInfo/');\nexport const GET_TEAM_OUTWARD_EDGES = ROOT.concat('fsm/getteamoutwardedges/');\nexport const GO_TO_TEAM = ROOT.concat('fsm/gototeam/');\nexport const GET_NOTIFICATIONS = ROOT.concat('notifications/api/unread_list/');\nexport const GET_CURRENT_PAGE = ROOT.concat('fsm/getcurrentpage/');\nexport const REQUEST_MENTOR = ROOT.concat('fsm/requestmentor/');\nexport const SEND_ANSWER = ROOT.concat('fsm/sendanswer/');\nexport const MOVE_TO_NEXT_STATE = ROOT.concat('fsm/movetonextstate/');\n\n//auction:\nexport const AUCTION_RESULT = ROOT.concat('auction/result/');\nexport const CREATE_AUCTION = ROOT.concat('auction/create/');\nexport const JOIN_AUCTION = ROOT.concat('auction/lastAuction/');\nexport const AUCTION_BID = ROOT.concat('auction/bid/');\n","import React, { useEffect, useState } from 'react';\nimport { Button, Label, Input } from 'semantic-ui-react';\nimport {\n createAuction,\n joinAuction,\n restartAuction,\n bid as bidAction,\n getResult,\n} from '../../../redux/actions/auction';\nimport { connect } from 'react-redux';\n\nfunction toFinish({ response_time, remained_time }) {\n return (\n remained_time + (response_time.getTime() - new Date().getTime()) / 1000\n );\n}\n\nfunction isAlive({ response_time, remained_time }) {\n return toFinish({ response_time, remained_time }) > 0;\n}\n\nfunction Auction({\n createAuction,\n joinAuction,\n values,\n team_id,\n auction_pay_type,\n delta,\n params,\n bidAction,\n restartAuction,\n getResult,\n result,\n}) {\n const [finish, setFinish] = useState(0);\n const [bid, setBid] = useState(0);\n useEffect(() => {\n setTimeout(() => {\n if (params.auction) {\n if (\n isAlive({\n response_time: params.response_time,\n remained_time: params.auction.remained_time,\n })\n ) {\n setFinish(\n toFinish({\n response_time: params.response_time,\n remained_time: params.auction.remained_time,\n })\n );\n } else if (!result.auction) {\n getResult();\n }\n }\n }, 1000);\n });\n return (\n \n \n مزایده\n \n\n \n {params.auction ? (\n \n \n \n مزایده شماره: {params.auction.id}\n \n \n \n \n پایان: {finish + 'ثانیه دیگر '}\n ارزش محصول برای من: {params.my_value}\n setBid(value)}\n />\n {}\n : () => bidAction({ bid, auction: params.auction.id })\n }\n >\n ثبت\n \n {result.bidders ? (\n \n {result.bidders.map((bidder) => (\n \n ارزش: {bidder.value}\n قیمت پیشنهادی: {bidder.bid}\n \n \n \n ))}\n \n ) : (\n ''\n )}\n \n ) : (\n <>\n \n createAuction({\n values,\n auction_pay_type,\n })\n }\n >\n ساخت مزایده\n \n joinAuction()}\n >\n اضافه شدن به مزایده\n \n >\n )}\n \n \n );\n}\n\nconst mapStateToProps = (state) => ({\n team_id: state.account.user.team_id,\n params: state.auction.params,\n result: state.auction.result,\n});\n\nexport default connect(mapStateToProps, {\n createAuction,\n joinAuction,\n restartAuction,\n bidAction,\n getResult,\n})(Auction);\n","import * as actionTypes from './actionTypes';\nimport * as urls from './urls';\nimport { CALL_API } from '../middleware/api/api';\n\nexport const createAuction = ({ values, auction_pay_type }) => ({\n [CALL_API]: {\n types: [\n actionTypes.CREATE_AUCTION_REQUEST,\n actionTypes.CREATE_AUCTION_SUCCESS,\n actionTypes.CREATE_AUCTION_FAILURE,\n ],\n url: urls.CREATE_AUCTION,\n fetchOptions: {\n method: 'POST',\n body: JSON.stringify({\n values,\n auction_pay_type,\n }),\n },\n },\n});\n\nexport const joinAuction = () => ({\n [CALL_API]: {\n types: [\n actionTypes.JOIN_AUCTION_REQUEST,\n actionTypes.JOIN_AUCTION_SUCCESS,\n actionTypes.JOIN_AUCTION_FAILURE,\n ],\n url: urls.JOIN_AUCTION,\n fetchOptions: {\n method: 'GET',\n },\n },\n});\n\nexport const bid = ({ auction, bid }) => ({\n [CALL_API]: {\n types: [\n actionTypes.BID_REQUEST,\n actionTypes.BID_SUCCESS,\n actionTypes.BID_FAILURE,\n ],\n url: urls.AUCTION_BID,\n fetchOptions: {\n method: 'POST',\n body: JSON.stringify({\n auction,\n bid,\n }),\n },\n },\n});\n\nexport const getResult = () => ({\n [CALL_API]: {\n types: [\n actionTypes.AUCTION_RESULT_REQUEST,\n actionTypes.AUCTION_RESULT_SUCCESS,\n actionTypes.AUCTION_RESULT_FAILURE,\n ],\n url: urls.AUCTION_RESULT,\n fetchOptions: {\n method: 'GET',\n },\n },\n});\nexport const restartAuction = () => ({\n type: actionTypes.RESTART_AUCTION,\n});\n","export const ItemTypes = {\n ANSWER: \"answer\",\n BLANK: \"blank\",\n BEFORE_BLANK: \"BEFORE_BLANK\",\n AFTER_BLANK: \"AFTER_BLANK\",\n NOT_BLANK: \"NOT_BLANK\"\n };\n\n ","import { ItemTypes } from './ItemTypes';\n\nexport const firstData = [\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: 'minCell = cell with domain{ ',\n },\n {\n type: ItemTypes.BLANK,\n text: '1',\n blankIndex: 0,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' } ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: 'for each cell in ',\n },\n {\n type: ItemTypes.BLANK,\n text: '2',\n blankIndex: 1,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' : ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if cell `,\n },\n {\n type: ItemTypes.BLANK,\n text: '3',\n blankIndex: 2,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' ',\n },\n {\n type: ItemTypes.BLANK,\n text: '4',\n blankIndex: 3,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' : ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if cell.`,\n },\n {\n type: ItemTypes.BLANK,\n text: '5',\n blankIndex: 4,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '6',\n blankIndex: 5,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' is ',\n },\n {\n type: ItemTypes.BLANK,\n text: '7',\n blankIndex: 6,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' ',\n },\n {\n type: ItemTypes.BLANK,\n text: '8',\n blankIndex: 7,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '9',\n blankIndex: 8,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '10',\n blankIndex: 9,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}set `,\n },\n {\n type: ItemTypes.BLANK,\n text: '11',\n blankIndex: 10,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' equal to cell ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: 'return min cell ',\n },\n ],\n];\n\nexport const firstAnswers = [\n '{1,2,3,4,5,6,7,8,9}',\n 'table',\n 'is',\n 'empty',\n 'domain',\n 'size',\n 'smaller than',\n 'minCell',\n 'domain',\n 'size',\n 'minCell',\n];\n\nexport const firstHelps = [\n {\n line: 0,\n help:\n 'در ابتدا خونهای به اسم minCell، با بزرگترین دامنهی ممکن تعریف میکنیم تا بعد با بررسی خونههای خالی جدول خونهای رو پیدا کنیم که کمترین دامنه رو داره و در minCell جایگزین کنیم',\n },\n {\n line: 1,\n help: 'میخواهیم همهی خونههای خالی جدول رو بررسی کنیم.',\n },\n {\n line: 2,\n help: '',\n },\n {\n line: 3,\n help:\n 'اندازهی دامنهی هر خونه خالی از جدول رو با اندازهی دامنهی minCell مقایسه میکنیم. اگر کوچکتر بود، میفهمیم که اون خونه رو باید در minCell نگه داریم.',\n },\n {\n line: 4,\n help: '',\n },\n {\n line: 5,\n help: '',\n },\n];\n","import * as actionTypes from './actionTypes';\nimport makeId from '../../utils/makeId';\n\nexport const updateBlank = (newText, blankIndex, gameIndex) => ({\n type: actionTypes.UPDATE_BLANK,\n payload: { newText, blankIndex, gameIndex },\n});\n\nexport const updateBlankSituation = (newSituation, blankIndex, gameIndex) => ({\n type: actionTypes.UPDATE_BLANK_SITUATION,\n payload: { newSituation, blankIndex, gameIndex },\n});\n","import React, { Component } from 'react';\nimport { Flag, Segment, Grid } from 'semantic-ui-react';\nimport { useDrag } from 'react-dnd';\nimport { ItemTypes } from './ItemTypes';\nimport './style.css';\n\nexport default function AnswerBox({ text }) {\n const [{ isDragging }, drag] = useDrag({\n item: { text, type: ItemTypes.ANSWER },\n collect: (monitor) => ({\n isDragging: !!monitor.isDragging(),\n }),\n });\n return (\n \n \n {text}\n \n \n );\n}\n","import React from 'react';\nimport { Flag, Segment, Grid } from 'semantic-ui-react';\nimport { useDrop } from 'react-dnd';\nimport { ItemTypes } from './ItemTypes';\nimport './style.css';\nimport * as situations from './blanksSituation';\n\nexport default function BlankBox({\n text,\n index,\n lineIndex,\n onDrop,\n blankIndex,\n situation,\n answer,\n}) {\n const [{ isOver, canDrop }, drop] = useDrop({\n accept: ItemTypes.ANSWER,\n drop: (item) => {\n onDrop(item.text, blankIndex);\n },\n collect: (monitor) => ({\n isOver: !!monitor.isOver(),\n canDrop: !!monitor.canDrop(),\n }),\n });\n return (\n \n \n {situation === situations.WRONG ? answer : text ? text : blankIndex + 1}\n \n \n );\n}\n","import React from 'react';\nimport { Icon, Popup } from 'semantic-ui-react';\nimport BlankBox from './BlankBox';\nimport { ItemTypes } from './ItemTypes';\nimport './style.css';\n\nconst CodeLine = ({\n blanks,\n lineData,\n lineIndex,\n onDrop,\n help,\n situations,\n answers,\n}) => {\n return (\n \n \n )\n }\n />\n\n {lineData.map((data, index) => {\n if (data.type === ItemTypes.NOT_BLANK) {\n return (\n \n {data.text}\n \n );\n } else if (data.type === ItemTypes.BLANK) {\n return (\n \n \n \n );\n }\n })}\n \n );\n};\n\nexport default CodeLine;\n","import React, { Component } from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { TouchBackend } from 'react-dnd-touch-backend';\nimport { Button, Grid, Segment } from 'semantic-ui-react';\nimport AnswerBox from '../../../components/BlankGame/AnswerBox';\nimport CodeLine from '../../../components/BlankGame/CodeLine';\nimport * as blankSituations from '../../../components/BlankGame/blanksSituation';\n\nclass BlankGame extends Component {\n constructor(props) {\n super(props);\n\n this.checkAnswers = this.checkAnswers.bind(this);\n }\n state = {\n round: 1,\n };\n\n checkAnswers() {\n let check = true;\n this.props.answers.forEach((answer, index) => {\n if (this.props.blanks[index] !== answer) {\n check = false;\n }\n });\n return check;\n }\n\n showCorrectAnswers() {\n this.props.answers.forEach((answer, index) => {\n if (\n this.props.gameIndex === 2 &&\n index === 5 &&\n this.props.blanks[index] === '{1,2,3,4,5,6,7,8,9}'\n ) {\n this.props.updateBlankSituation(\n blankSituations.CORRECT,\n index,\n this.props.gameIndex\n );\n } else {\n if (this.props.blanks[index] !== answer) {\n this.props.updateBlankSituation(\n blankSituations.WRONG,\n index,\n this.props.gameIndex\n );\n } else {\n this.props.updateBlankSituation(\n blankSituations.CORRECT,\n index,\n this.props.gameIndex\n );\n }\n }\n });\n }\n\n onButtonClick() {\n if (this.state.round < 3) {\n let check = this.checkAnswers();\n if (this.state.round === 1 && !check) {\n alert('فقط یه فرصت دیگه داری');\n } else {\n this.showCorrectAnswers();\n }\n\n this.setState({ round: this.state.round + 1 });\n }\n }\n\n onDrop(newText, blankIndex) {\n this.props.updateBlank(newText, blankIndex, this.props.gameIndex);\n }\n\n isTouchSupported() {\n var msTouchEnabled = window.navigator.msMaxTouchPoints;\n var generalTouchEnabled = 'ontouchstart' in document.createElement('div');\n\n if (msTouchEnabled || generalTouchEnabled) {\n return true;\n }\n return false;\n }\n\n render() {\n return (\n \n \n \n \n \n \n {this.props.code.map((line, lineIndex) => {\n return (\n \n \n \n );\n })}\n \n \n \n Check Answers\n \n \n \n \n \n \n {this.props.answerOptions.map((option) => {\n return ;\n })}\n \n \n \n \n \n );\n }\n}\n\nexport default BlankGame;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport {\n firstAnswers,\n firstData,\n firstHelps,\n} from '../../../components/BlankGame/firstData';\nimport {\n updateBlank,\n updateBlankSituation,\n} from '../../../redux/actions/blankGame';\nimport BlankGameContainer from './BlankGameContainer';\n\nconst answerOptions = [\n 'table',\n 'empty',\n 'is',\n 'domain',\n 'minCell',\n 'size',\n '{1,2,3,4,5,6,7,8,9}',\n 'smaller than',\n];\n\nconst FirstBlankGame = (props) => {\n return (\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n blanks: state.blankGame.blanks[0],\n situtations: state.blankGame.blanksSituation[0],\n});\n\nexport default connect(mapStateToProps, {\n updateBlank,\n updateBlankSituation,\n})(FirstBlankGame);\n","import { ItemTypes } from './ItemTypes';\n\nexport const secondData = [\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: 'if ',\n },\n {\n type: ItemTypes.BLANK,\n text: '1',\n blankIndex: 0,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' is ',\n },\n {\n type: ItemTypes.BLANK,\n text: '2',\n blankIndex: 1,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' : ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}finish the algorithm `,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: 'for each cell in ',\n },\n {\n type: ItemTypes.BLANK,\n text: '3',\n blankIndex: 2,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if cell `,\n },\n {\n type: ItemTypes.BLANK,\n text: '4',\n blankIndex: 3,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' ',\n },\n {\n type: ItemTypes.BLANK,\n text: '5',\n blankIndex: 4,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if cell.`,\n },\n {\n type: ItemTypes.BLANK,\n text: '6',\n blankIndex: 5,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '7',\n blankIndex: 6,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' is ',\n },\n {\n type: ItemTypes.BLANK,\n text: '8',\n blankIndex: 7,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}return wrong answer `,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: ' return true answer',\n },\n ],\n];\n\nexport const secondAnswers = [\n 'table',\n 'full',\n 'table',\n 'is',\n 'empty',\n 'domain',\n 'size',\n '0',\n];\n\nexport const secondHelps = [\n {\n line: 0,\n help: 'اگر تمام جدول پر شده باشد، کار ما به پایان رسیده',\n },\n {\n line: 1,\n help: '',\n },\n {\n line: 2,\n help: 'باید همهی خانههای خالی جدول را بررسی کنیم',\n },\n {\n line: 3,\n help: '',\n },\n {\n line: 4,\n help:\n 'اگر اندازهی دامنهی خونهای از جدول صفر شده باشد، یعنی الان در وضعیت ناسازگاری هستیم',\n },\n {\n line: 5,\n help: '',\n },\n {\n line: 6,\n help: '',\n },\n];\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport {\n secondAnswers,\n secondData,\n secondHelps,\n} from '../../../components/BlankGame/secondData';\nimport {\n updateBlank,\n updateBlankSituation,\n} from '../../../redux/actions/blankGame';\nimport BlankGameContainer from './BlankGameContainer';\n\nconst answerOptions = ['size', '0', 'is', 'empty', 'domain', 'table', 'full'];\n\nconst SecondBlankGame = (props) => {\n return (\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n blanks: state.blankGame.blanks[1],\n situtations: state.blankGame.blanksSituation[1],\n});\n\nexport default connect(mapStateToProps, {\n updateBlank,\n updateBlankSituation,\n})(SecondBlankGame);\n","import { ItemTypes } from './ItemTypes';\n\nexport const thirdData = [\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: 'Domain = { ',\n },\n {\n type: ItemTypes.BLANK,\n text: '1',\n blankIndex: 0,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' } ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: 'for each ',\n },\n {\n type: ItemTypes.BLANK,\n text: '2',\n blankIndex: 1,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' in ',\n },\n {\n type: ItemTypes.BLANK,\n text: '3',\n blankIndex: 2,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' : ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if `,\n },\n {\n type: ItemTypes.BLANK,\n text: '4',\n blankIndex: 3,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' is empty : ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}set `,\n },\n {\n type: ItemTypes.BLANK,\n text: '5',\n blankIndex: 4,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.domain equal to ',\n },\n {\n type: ItemTypes.BLANK,\n text: '6',\n blankIndex: 5,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}for each cell in row number `,\n },\n {\n type: ItemTypes.BLANK,\n text: '7',\n blankIndex: 6,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '8',\n blankIndex: 7,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if cell `,\n },\n {\n type: ItemTypes.BLANK,\n text: '9',\n blankIndex: 8,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' ',\n },\n {\n type: ItemTypes.BLANK,\n text: '10',\n blankIndex: 9,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}delete cell.value from `,\n },\n {\n type: ItemTypes.BLANK,\n text: '11',\n blankIndex: 10,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '12',\n blankIndex: 11,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}for each cell in column number `,\n },\n {\n type: ItemTypes.BLANK,\n text: '13',\n blankIndex: 12,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '14',\n blankIndex: 13,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if cell `,\n },\n {\n type: ItemTypes.BLANK,\n text: '15',\n blankIndex: 14,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' ',\n },\n {\n type: ItemTypes.BLANK,\n text: '16',\n blankIndex: 15,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}delete cell.value from `,\n },\n {\n type: ItemTypes.BLANK,\n text: '17',\n blankIndex: 16,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '18',\n blankIndex: 17,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}define x = value of `,\n },\n {\n type: ItemTypes.BLANK,\n text: '19',\n blankIndex: 18,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' / 3 ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}define y = value of `,\n },\n {\n type: ItemTypes.BLANK,\n text: '20',\n blankIndex: 19,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' / 3 ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}for each cell in `,\n },\n {\n type: ItemTypes.BLANK,\n text: '21',\n blankIndex: 20,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' at x , y ',\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}if cell `,\n },\n {\n type: ItemTypes.BLANK,\n text: '22',\n blankIndex: 21,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: ' ',\n },\n {\n type: ItemTypes.BLANK,\n text: '23',\n blankIndex: 22,\n },\n ],\n [\n {\n type: ItemTypes.NOT_BLANK,\n text: `${' '}delete cell.value from `,\n },\n {\n type: ItemTypes.BLANK,\n text: '24',\n blankIndex: 23,\n },\n {\n type: ItemTypes.NOT_BLANK,\n text: '.',\n },\n {\n type: ItemTypes.BLANK,\n text: '25',\n blankIndex: 24,\n },\n ],\n];\n\nexport const thirdAnswers = [\n '{1,2,3,4,5,6,7,8,9}',\n 'myCell',\n 'table',\n 'myCell',\n 'myCell',\n 'Domain',\n 'myCell',\n 'row',\n 'is not',\n 'empty',\n 'myCell',\n 'domain',\n 'myCell',\n 'column',\n 'is not',\n 'empty',\n 'myCell',\n 'domain',\n 'myCell.row',\n 'myCell.column',\n 'square',\n 'is not',\n 'empty',\n 'myCell',\n 'domain',\n];\n\nexport const thirdHelps = [\n {\n line: 0,\n help:\n 'در این قسمت میخواهیم یک دامنهی اولیه در Domain تعریف کنیم تا در ابتدا دامنهی هر خونه خالی را مساوی Domain قرار بدهیم و بعد به مرور دامنهی حقیقی را بدست بیاوریم',\n },\n {\n line: 1,\n help: 'میخواهیم دامنهی همهی خونههای خالی جدول رو بدست بیاریم',\n },\n {\n line: 2,\n help: '',\n },\n {\n line: 3,\n help:\n 'در این مرحله، دامنهی اولیهی خانه خالی مورد نظر رو مساوی با Domain قرار میدیم تا در ادامه محدودیتها رو روی اون پیاده کنیم و دامنه حقیقی رو بدست بیاریم',\n },\n {\n line: 4,\n help:\n 'میخواهیم محدودیت ناشی از خونههایی که همسطر با خونه موردنظرمون هستند رو اعمال کنیم.برای همین باید همه خونههای پر اون سطر رو بررسی کنیم و دامنه خونه موردنظر رو با کمک اون مقادیر به روز کنیم',\n },\n {\n line: 5,\n help: '',\n },\n {\n line: 6,\n help: '',\n },\n {\n line: 7,\n help:\n 'میخواهیم محدودیت ناشی از خونههایی که ستون با خونه موردنظرمون هستند رو اعمال کنیم.برای همین باید همه خونههای پر اون ستون رو بررسی کنیم و دامنه خونه موردنظر رو با کمک اون مقادیر به روز کنیم',\n },\n {\n line: 8,\n help: '',\n },\n {\n line: 9,\n help: '',\n },\n {\n line: 10,\n help:\n 'میخواهیم محدودیت ناشی از خونههایی که با خونه موردنظرمون در یک مربع قرار گرفتن رو اعمال کنیم. برای همین، باید با کمک xوy شماره مربع موردنظر رو پیدا کنیم',\n },\n {\n line: 11,\n help: '',\n },\n {\n line: 12,\n help: 'میخواهیم محدودیت ناشی از خونههایی که با خونهی موردنظرمون در یک مربع قرار گرفتن رو اعمال کنیم. پس باید همهی خونههای پر اون مربع رو بررسی کنیم و دامنه خونه موردنظر رو با کمک اون مقادیر به روز کنیم',\n },\n {\n line: 13,\n help: '',\n },\n {\n line: 14,\n help: '',\n },\n];\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport {\n thirdAnswers,\n thirdData,\n thirdHelps,\n} from '../../../components/BlankGame/thirdData';\nimport {\n updateBlank,\n updateBlankSituation,\n} from '../../../redux/actions/blankGame';\nimport BlankGameContainer from './BlankGameContainer';\n\nconst answerOptions = [\n 'square',\n 'Domain',\n 'empty',\n 'domain',\n '{1,2,3,4,5,6,7,8,9}',\n 'is not',\n 'row',\n 'myCell',\n 'table',\n 'myCell.column',\n 'myCell.row',\n 'column',\n];\n\nconst SecondBlankGame = (props) => {\n return (\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n blanks: state.blankGame.blanks[2],\n situtations: state.blankGame.blanksSituation[2],\n});\n\nexport default connect(mapStateToProps, {\n updateBlank,\n updateBlankSituation,\n})(SecondBlankGame);\n","import React, { Component } from 'react';\nimport { Redirect } from 'react-router';\n\nimport GameTheoryGraph from './games/GameTheoryGraph';\nimport GeoGebra from './games/GeoGebra/GeoGebra';\nimport FirstCodingGame from './games/CodingGame/FirstCodingGame';\nimport SecondCodingGame from './games/CodingGame/SecondCodingGame';\nimport CodingGrid from './games/CodingGame/CodingGrid';\nimport FirstBoxesContainer from './games/AlgorithmGames/FirstBoxesContainer';\nimport SecondBoxesContainer from './games/AlgorithmGames/SecondBoxesContainer';\nimport VerticalLines from './games/CodingGame/VerticalLines';\nimport DummiesGame from './games/AlgorithmGames/DummiesGame';\nimport DormGame from './games/GameTheoryGames/DormGame';\nimport gameTypes from './games/gameTypes';\nimport PipelinePane from './games/AlgorithmGames/PipelinePane';\nimport RentRoom from './games/GameTheoryGames/RentRoom';\nimport XSoali from './games/CodingGame/CodingXSoali';\nimport SelfDrivingCar1 from './games/AIGames/SelfDrivingCar1';\nimport SelfDrivingCar2 from './games/AIGames/SelfDrivingCar2';\nimport FreeFallGame from './games/PhysicGames/FreeFallGame';\nimport SpaceGame from './games/PhysicGames/SpaceGame';\nimport Hash from './games/BlockChain/HashPane';\nimport Block from './games/BlockChain/BlockPane';\nimport BlockChain from './games/BlockChain/BlockChainPane';\nimport MessageGame from './games/BlockChain/MessageGame';\nimport SecondPipelineGraph from './games/AlgorithmGames/SecondPipelineGraph';\nimport Map from './games/PhysicGames/Map';\nimport FirstStreetGraph from './games/GameTheoryGames/FirstStreetGraph';\nimport SecondStreetGraph from './games/GameTheoryGames/SecondStreetGraph';\nimport ThirdStreetGraph from './games/GameTheoryGames/ThirdStreetGraph';\nimport Auction from './games/GameTheoryGames/Auction';\nimport FirstBlankGame from './games/BlankGame/FirstBlankGame';\nimport SecondBlankGame from './games/BlankGame/SecondBlankGame';\nimport ThirdBlankGame from './games/BlankGame/ThirdBlankGame';\n\nexport default class Game extends Component {\n render() {\n switch (this.props.match.params.id) {\n case gameTypes.THIRD_BLANK_GAME.type:\n return ;\n case gameTypes.SECOND_BLANK_GAME.type:\n return ;\n case gameTypes.FIRST_BLANK_GAME.type:\n return ;\n case gameTypes.FIRST_TRAFFIC_GAME.type:\n return ;\n case gameTypes.SECOND_TRAFFIC_GAME.type:\n return ;\n case gameTypes.THIRD_TRAFFIC_GAME.type:\n return ;\n case gameTypes.MAP_GAME.type:\n return ;\n // case gameTypes.STREET_GRAPH.type:\n // return ;\n case gameTypes.PIPELINE_GRAPH.type:\n return ;\n case gameTypes.SECOND_PIPELINE_GRAPH.type:\n return ;\n case gameTypes.GEOGEBRA.type:\n return ;\n case gameTypes.FIRST_CODING_GAME.type:\n return ;\n case gameTypes.SECOND_CODING_GAME.type:\n return ;\n case gameTypes.X_QUESTIONS.type:\n return ;\n case gameTypes.RENT_ROOM.type:\n return ;\n case gameTypes.GRID.type:\n return ;\n case gameTypes.FIRST_BOX_GAME.type:\n return ;\n case gameTypes.SECOND_BOX_GAME.type:\n return ;\n case gameTypes.VERTICAL_LINES.type:\n return ;\n case gameTypes.DUMMIES_GAME.type:\n return ;\n case gameTypes.DORM_GAME.type:\n return ;\n case gameTypes.FIRST_DRIVIING_CAR.type:\n return ;\n case gameTypes.SECOND_DRIVIING_CAR.type:\n return ;\n case gameTypes.FREE_FALL.type:\n return ;\n case gameTypes.SPACE_GAME.type:\n return ;\n case gameTypes.HASH.type:\n return ;\n case gameTypes.BLOCK.type:\n return ;\n case gameTypes.BLOCKCHAIN.type:\n return ;\n case gameTypes.MESSAGE_GAME.type:\n return ;\n // case gameTypes.AUCTION_GAME1.type:\n // return ;\n // case gameTypes.AUCTION_GAME2.type:\n // return ;\n // case gameTypes.AUCTION_GAME3.type:\n // return ;\n // case gameTypes.AUCTION_GAME4.type:\n // return ;\n default:\n return ;\n }\n }\n}\n","import '../styles/landing.css';\nimport React, { Component } from 'react';\nimport gameTypes from './games/gameTypes';\n\nclass LandingPage extends Component {\n render() {\n const games = [];\n for (const item in gameTypes) {\n games.push({\n name: gameTypes[item].name,\n url: gameTypes[item].url,\n })\n }\n return (\n \n {games.map((game, index) => (\n \n \n {game.name}\n \n \n ))}\n \n );\n }\n}\n\nexport default LandingPage\n","import React from 'react';\nimport { Switch } from 'react-router-dom';\nimport { Route } from 'react-router-dom';\n\nimport Game from '../containers/game';\nimport LandingPage from '../containers/LandingPage'\nimport '../styles/App.css';\n\nconst Root = () => (\n <>\n \n \n \n \n >\n);\nexport default Root;\n","import React, { useState } from 'react';\nimport { Modal, Button } from 'semantic-ui-react';\n\nexport default function Alert(props) {\n const [open, setOpen] = useState(true);\n\n const closeModal = () => {\n setOpen(false);\n if (!!props.onClose) {\n props.onClose();\n }\n };\n\n return (\n setOpen(true)}\n open={open}\n size=\"mini\"\n style={{ direction: 'rtl', textAlign: 'right' }}\n >\n {props.title ? {props.title} : ''}\n {props.message ? (\n \n \n {props.message}\n \n \n ) : (\n ''\n )}\n\n \n \n {props.action ? props.action : 'حله'}\n \n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Message, Icon } from 'semantic-ui-react';\nimport { connect } from 'react-redux';\nimport { shift, fastShift, shiftRedirect } from './redux/actions/messages';\nimport { Redirect } from 'react-router';\nimport Alert from './components/Alert/Alert';\n\nfunction Messages(props) {\n const [timer, setTimer] = useState(5000);\n\n useEffect(() => {\n if (props.messages.length === 0) {\n return;\n }\n if (props.messages[0].mode && props.messages[0].mode === 'alert') {\n return;\n }\n if (timer < 0) {\n shiftMessage();\n } else {\n setTimeout(() => setTimer(timer - 100), 100);\n }\n });\n const shiftRedirect = () => {\n setTimeout(() => props.shiftRedirect(), 100);\n return ;\n };\n\n const resetShiftTimer = () => {\n setTimer(5000);\n };\n\n const shiftMessage = () => {\n resetShiftTimer();\n props.fastShift();\n };\n\n return (\n <>\n {props.redirects.length > 0 ? shiftRedirect() : ''}\n \n {props.messages.length > 0 ? (\n props.messages[0].mode === 'alert' ? (\n \n ) : (\n \n \n {\n shiftMessage();\n }}\n >\n \n \n \n )\n ) : (\n ''\n )}\n \n >\n );\n}\n\nconst mapStateToProps = (state) => ({\n messages: state.messages.messages,\n redirects: state.messages.redirects,\n});\n\nexport default connect(mapStateToProps, {\n shift,\n shiftRedirect,\n fastShift,\n})(Messages);\n","import * as actionTypes from './actionTypes';\n\nexport const shift = () => (dispatch) => {\n setTimeout(() => {\n dispatch({\n type: actionTypes.SHIFT_MESSAGE,\n });\n }, 6000);\n};\n\nexport const fastShift = () => ({\n type: actionTypes.SHIFT_MESSAGE,\n});\n\nexport const shiftRedirect = () => ({\n type: actionTypes.SHIFT_REDIRECT,\n});\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport 'semantic-ui-css/semantic.min.css';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter as Router } from 'react-router-dom';\n\nimport Root from './root';\nimport configureStore from './redux/store/configureStore';\nimport Messages from './Messages';\n\nconst persistedState = localStorage.getItem('rastaReactState')\n ? JSON.parse(localStorage.getItem('rastaReactState'))\n : {};\nconst store = configureStore(persistedState);\nstore.subscribe(() => {\n localStorage.setItem(\n 'rastaReactState',\n JSON.stringify({\n account: { ...store.getState().account },\n fsm: { ...store.getState().fsm },\n })\n );\n});\n\nReactDOM.render(\n \n \n \n \n \n ,\n document.getElementById('root')\n);\n","import * as actionTypes from '../actions/actionTypes';\nimport * as socketActionTypes from '../actions/socketActionTypes';\nimport { updateWhiteboard } from './whiteboard';\nimport { SEND_SOCKET } from '../middleware/socket/socket';\n\nexport function initializeSocket({ team_uuid, user_uuid }) {\n return (dispatch) => {\n const socket = new WebSocket(\n process.env.NODE_ENV === 'production'\n ? `wss://rastaiha.ir/ws/${team_uuid}/${user_uuid}/`\n : `wss://rastaiha.ir/ws/${team_uuid}/${user_uuid}/`\n );\n\n dispatch(socketConnectionInit(socket));\n\n socket.onopen = function () {\n dispatch(\n SendSocketMessageDispatcher({\n type: socketActionTypes.JOIN_TO_GROUP_ROOM,\n })\n );\n dispatch(socketConnectionSuccess());\n };\n\n socket.onerror = function (err) {\n dispatch(socketConnectionError(err));\n };\n\n socket.onmessage = function (event) {\n dispatch(socketMessage(JSON.parse(event.data)));\n };\n\n socket.onclose = function () {\n dispatch(socketConnectionClosed());\n };\n };\n}\n\nconst socketConnectionInit = (socket) => ({\n type: actionTypes.SOCKET_CONNECTION_INIT,\n socket,\n});\n\nconst socketConnectionSuccess = () => ({\n type: actionTypes.SOCKET_CONNECTION_SUCCESS,\n});\n\nconst socketConnectionError = (err) => ({\n type: actionTypes.SOCKET_CONNECTION_ERROR,\n err,\n});\n\nexport const closeSocketConnection = () => ({\n type: actionTypes.CLOSE_SOCKET_CONNECTION,\n});\n\nconst socketConnectionClosed = () => ({\n type: actionTypes.SOCKET_CONNECTION_CLOSED,\n});\n\nconst socketMessage = (data) => {\n switch (data.type) {\n case socketActionTypes.PASS_DRAWING_STATE:\n return updateWhiteboard(data.data);\n case socketActionTypes.JOIN_TO_GROUP_ROOM:\n return {\n [SEND_SOCKET]: {\n socketTypes: [\n 'asdfasdfasdfasdfa',\n 'asdfasdfasdfasdfa',\n 'asdfasdfasdfasdfa',\n ],\n type: socketActionTypes.PASS_DRAWING_STATE,\n sendWhiteboard: true,\n },\n };\n default:\n return { type: 'salam' };\n }\n};\n\nconst sendSocketMessage = (socket, message) => {\n socket.send(JSON.stringify(message));\n};\n\nexport const SendSocketMessageDispatcher = ({ type, data }) => (\n dispatch,\n getStore\n) => {\n sendSocketMessage(getStore().socket.socket, {\n type,\n data,\n token: 'get_token', // getStore().account.token\n time: new Date(),\n });\n return dispatch({\n type: actionTypes.SEND_SOCKET_MESSAGE,\n });\n};\n","import { SendSocketMessageDispatcher } from '../../actions/socket';\n\nexport const SEND_SOCKET = 'SEND_SOCKET';\n\nexport default ({ getState, dispatch }) => (next) => async (action) => {\n const sendSocketData = action[SEND_SOCKET];\n if (typeof sendSocketData === 'undefined') {\n return next(action);\n }\n\n const { socketTypes, type, payload, sendWhiteboard } = sendSocketData;\n\n const actionWith = (data) => {\n const finalAction = Object.assign({}, action, data);\n delete finalAction[SEND_SOCKET];\n return finalAction;\n };\n\n const [requestType, successType, failureType] = socketTypes;\n next(actionWith({ type: requestType, payload }));\n\n try {\n if (!!sendWhiteboard) {\n dispatch(\n SendSocketMessageDispatcher({\n type,\n data: getState().whiteboard.present,\n })\n );\n } else {\n dispatch(SendSocketMessageDispatcher({ type, data: payload }));\n }\n return next(\n actionWith({\n type: successType,\n payload\n })\n );\n } catch (error) {\n return next(\n actionWith({\n type: failureType,\n error: error.message || 'Something bad happened',\n })\n );\n }\n};\n","import undoable from 'redux-undo';\nimport * as actionTypes from '../actions/actionTypes';\n\nimport DrawingModes from './whiteboardModes';\nconst init = {\n mode: DrawingModes.MOVE,\n paint: {\n stroke: 'black',\n strokeWidth: 3,\n lineCap: 'round',\n lineJoin: 'round',\n tension: 0.5,\n lastUpdate: null,\n },\n nodes: [],\n};\nfunction whiteboard(state = init, action) {\n switch (action.type) {\n case actionTypes.INIT_WHITEBOARD:\n return init;\n case actionTypes.UPDATE_WHITEBOARD:\n if (!action.payload.state.lastUpdate) {\n return state;\n }\n if (!state.lastUpdate) {\n return {\n ...action.payload.state,\n mode: state.mode\n };\n }\n action.payload.state.lastUpdate = new Date(\n action.payload.state.lastUpdate\n );\n state.lastUpdate = new Date(state.lastUpdate);\n if (\n action.payload.state.lastUpdate.getTime() > state.lastUpdate.getTime()\n ) {\n return {\n ...action.payload.state,\n mode: state.mode\n };\n }\n return state;\n\n case actionTypes.DESELECT_NODES:\n return {\n ...state,\n nodes: state.nodes.map(function (node) {\n return { ...node, isSelected: false };\n }),\n };\n case actionTypes.DESELECT_NODE:\n return {\n ...state,\n nodes: state.nodes.map(function (node) {\n return node.id === action.payload.node_id\n ? { ...node, isSelected: false }\n : node;\n }),\n };\n case actionTypes.SELECT_NODE:\n return {\n ...state,\n nodes: state.nodes.map(function (node) {\n return node.id === action.payload.node_id\n ? { ...node, isSelected: true }\n : node;\n }),\n };\n case actionTypes.ADD_NODE_REQUEST:\n if (action.payload.node.type === 'LINE') {\n state.isPainting = true;\n }\n return {\n ...state,\n lastUpdate: new Date(),\n nodes: [...state.nodes, action.payload.node],\n };\n case actionTypes.UPDATE_SHAPE_PROPS_REQUEST:\n return {\n ...state,\n lastUpdate: new Date(),\n nodes: state.nodes.map(function (node) {\n return node.id === action.payload.node_id\n ? { ...node, shapeProps: action.payload.shapeProps }\n : node;\n }),\n };\n case actionTypes.ADD_POINTS_TO_LINE:\n return {\n ...state,\n lastUpdate: new Date(),\n nodes: state.nodes.map(function (node) {\n if (node.id === action.payload.node_id && node.type === 'LINE') {\n const points = [\n ...node.shapeProps.points,\n ...action.payload.points,\n ];\n return {\n ...node,\n shapeProps: {\n ...node.shapeProps,\n points,\n },\n };\n } else {\n return node;\n }\n }),\n };\n case actionTypes.COMPLETE_LINE_REQUEST:\n return {\n ...state,\n lastUpdate: new Date(),\n isPainting: false,\n };\n case actionTypes.CHANGE_MODE:\n return {\n ...state,\n mode: action.payload.mode,\n };\n case actionTypes.REMOVE_SELECTED_NODES_REQUEST:\n return {\n ...state,\n lastUpdate: new Date(),\n nodes: state.nodes.filter((node) => !node.isSelected),\n };\n default:\n return state;\n }\n}\n\nconst undoableWhiteboard = undoable(whiteboard, {\n limit: 20,\n filter: (action, state) => {\n return (\n (action.type === actionTypes.ADD_NODE_REQUEST && !state.isPainting) ||\n action.type === actionTypes.UPDATE_SHAPE_PROPS_REQUEST ||\n action.type === actionTypes.REMOVE_SELECTED_NODES_REQUEST ||\n action.type === actionTypes.COMPLETE_LINE_REQUEST\n );\n },\n});\n\nexport default undoableWhiteboard;\n","const DrawingModes = Object.freeze({\n MOVE: 0,\n PAINTING: 1,\n EARASING: 2,\n});\n\nexport default DrawingModes;\n","import * as actionTypes from '../actions/actionTypes';\nimport gameTypes from '../../containers/games/gameTypes';\n\nvar tempCapacity = 2;\n\nfunction graph(\n state = {\n vertices: [],\n edges: [],\n edgesCostSum: 0,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_VERTICE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n const newVertice = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const vertices = [...state.vertices, newVertice];\n return {\n ...state,\n vertices: vertices,\n };\n\n case actionTypes.CREATE_EDGE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n edges: [\n ...state.edges,\n {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n capacity: ++tempCapacity,\n filled: 0,\n a: 2,\n b: 5,\n weight: 0,\n props: action.payload.props,\n },\n ],\n };\n\n case actionTypes.SELECT_VERTICE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n vertices: state.vertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: true }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_VERTICE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n vertices: state.vertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: false }\n : vertice;\n }),\n };\n\n case actionTypes.SELECT_EDGE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n edges: state.edges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: true }\n : edge;\n }),\n };\n\n case actionTypes.DESELECT_EDGE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n edges: state.edges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: false }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_VERTICE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n vertices: state.vertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, props: action.payload.props }\n : vertice;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n edges: state.edges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, ...action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n edges: state.edges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, props: action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.REMOVE_SELECTED_VERTICES +\n '_' +\n gameTypes.GAME_THEORY_GRAPH.type:\n const _vertices = state.vertices.map(function (vertice) {\n return vertice.id === action.payload.id ? null : vertice;\n });\n return {\n ...state,\n vertices: _vertices,\n };\n\n case actionTypes.REMOVE_SELECTED_EDGES +\n '_' +\n gameTypes.GAME_THEORY_GRAPH.type:\n const _edges = state.edges.map(function (edge) {\n return edge.id === action.payload.id ? null : edge;\n });\n return {\n ...state,\n edges: _edges,\n };\n case actionTypes.UPDATE_COST + '_' + gameTypes.GAME_THEORY_GRAPH.type:\n return {\n ...state,\n edgesCostSum: action.payload.cost,\n }\n\n default:\n return state;\n }\n}\n\nexport default graph;\n","import undoable from 'redux-undo';\nimport {\n pipelineInitialEdges1,\n pipelineInitialVertices1,\n} from '../../containers/games/AlgorithmGames/pipelineGraphData';\nimport gameTypes from '../../containers/games/gameTypes';\nimport * as actionTypes from '../actions/actionTypes';\n\nfunction pipelineGraph(\n state = {\n pipelineEdges: [...pipelineInitialEdges1],\n pipelineVertices: [...pipelineInitialVertices1],\n initialVertices: [],\n initialEdges: [],\n addedFlux: 0,\n s: 0,\n t: 5,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_VERTICE + '_' + gameTypes.PIPELINE_GRAPH.type:\n const newVertice = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const vertices = [...state.pipelineVertices, newVertice];\n return {\n ...state,\n pipelineVertices: vertices,\n };\n case actionTypes.CREATE_EDGE + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineEdges: [\n ...state.pipelineEdges,\n {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n filled: 0,\n props: action.payload.props,\n },\n ],\n };\n case actionTypes.INITIAL_VERTICES + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineVertices: action.payload.newVertices,\n initialVertices: action.payload.newVertices,\n };\n case actionTypes.INITIAL_EDGES + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineEdges: action.payload.newEdges,\n initialEdges: action.payload.newEdges,\n };\n case actionTypes.SELECT_EDGE + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineEdges: state.pipelineEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: true }\n : edge;\n }),\n };\n\n case actionTypes.SELECT_VERTICE + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineVertices: state.pipelineVertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: true }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_VERTICE + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineVertices: state.pipelineVertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: false }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_EDGE + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineEdges: state.pipelineEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: false }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_VERTICE + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineVertices: state.pipelineVertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? {\n ...vertice,\n props: {\n ...vertice.props,\n ...action.payload.props,\n },\n }\n : vertice;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineEdges: state.pipelineEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, ...action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.RESET_GRAPH + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n pipelineVertices: [...pipelineInitialVertices1],\n pipelineEdges: [...pipelineInitialEdges1],\n addedFlux: 0,\n };\n case actionTypes.UPDATE_ADDED_FLUX + '_' + gameTypes.PIPELINE_GRAPH.type:\n return {\n ...state,\n addedFlux: action.payload.newFlux,\n };\n default:\n return state;\n }\n}\n\nconst undoablePipelineGraph = undoable(pipelineGraph, {\n limit: 40,\n filter: (action, state) => {\n return (\n action.type ===\n actionTypes.UPDATE_EDGE + '_' + gameTypes.PIPELINE_GRAPH.type ||\n action.type ===\n actionTypes.UPDATE_VERTICE + '_' + gameTypes.PIPELINE_GRAPH.type\n );\n },\n});\n\nexport default undoablePipelineGraph;\n","import * as actionTypes from '../actions/actionTypes';\nimport gameTypes from '../../containers/games/gameTypes';\nimport undoable from 'redux-undo';\nimport makeId from '../../utils/makeId';\nimport {\n pipelineInitialVertices2,\n pipelineInitialEdges2,\n} from '../../containers/games/AlgorithmGames/pipelineGraphData';\n\nfunction secondPipelineGraph(\n state = {\n secondPipelineEdges: [...pipelineInitialEdges2],\n secondPipelineVertices: [...pipelineInitialVertices2],\n addedFlux: 0,\n s: 0,\n t: 9,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_VERTICE +\n '_' +\n gameTypes.SECOND_PIPELINE_GRAPH.type:\n const newVertice = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const vertices = [...state.secondPipelineVertices, newVertice];\n return {\n ...state,\n secondPipelineVertices: vertices,\n };\n case actionTypes.CREATE_EDGE + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineEdges: [\n ...state.secondPipelineEdges,\n {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n filled: 0,\n props: action.payload.props,\n },\n ],\n };\n case actionTypes.INITIAL_VERTICES +\n '_' +\n gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineVertices: action.payload.newVertices,\n initialVertices: action.payload.newVertices,\n };\n case actionTypes.INITIAL_EDGES + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineEdges: action.payload.newEdges,\n initialEdges: action.payload.newEdges,\n };\n case actionTypes.SELECT_EDGE + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineEdges: state.secondPipelineEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: true }\n : edge;\n }),\n };\n\n case actionTypes.SELECT_VERTICE +\n '_' +\n gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineVertices: state.secondPipelineVertices.map(function (\n vertice\n ) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: true }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_VERTICE +\n '_' +\n gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineVertices: state.secondPipelineVertices.map(function (\n vertice\n ) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: false }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_EDGE + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineEdges: state.secondPipelineEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: false }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_VERTICE +\n '_' +\n gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineVertices: state.secondPipelineVertices.map(function (\n vertice\n ) {\n return vertice.id === action.payload.id\n ? {\n ...vertice,\n props: {\n ...vertice.props,\n ...action.payload.props,\n },\n }\n : vertice;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineEdges: state.secondPipelineEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, ...action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.RESET_GRAPH + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n secondPipelineVertices: [...pipelineInitialVertices2],\n secondPipelineEdges: [...pipelineInitialEdges2],\n addedFlux: 0,\n };\n case actionTypes.UPDATE_ADDED_FLUX +\n '_' +\n gameTypes.SECOND_PIPELINE_GRAPH.type:\n return {\n ...state,\n addedFlux: action.payload.newFlux,\n };\n default:\n return state;\n }\n}\n\nconst undoablePipelineGraph = undoable(secondPipelineGraph, {\n limit: 40,\n filter: (action, state) => {\n return (\n action.type ===\n actionTypes.UPDATE_EDGE + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type ||\n action.type ===\n actionTypes.UPDATE_VERTICE + '_' + gameTypes.SECOND_PIPELINE_GRAPH.type\n );\n },\n});\n\nexport default undoablePipelineGraph;\n","import * as ShapeTypes from '../../containers/games/CodingGame/ShapeTypes';\nimport * as actionTypes from '../actions/actionTypes';\n\nfunction codingGame(\n state = {\n dots: [],\n circles: [],\n squares: [],\n edges: [],\n distance: '',\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_DOT:\n const newDot = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const dots = [...state.dots, newDot];\n return {\n ...state,\n dots: dots,\n };\n case actionTypes.SELECT_DOT:\n return {\n ...state,\n dots: state.dots.map((dot) => {\n return dot.id === action.payload.id\n ? { ...dot, isSelected: true }\n : dot;\n }),\n };\n\n case actionTypes.DESELECT_DOT:\n return {\n ...state,\n dots: state.dots.map((dot) => {\n return dot.id === action.payload.id\n ? { ...dot, isSelected: false }\n : dot;\n }),\n };\n\n case actionTypes.CREATE_CIRCLE:\n const newCircle = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const circles = [...state.circles, newCircle];\n return {\n ...state,\n circles: circles,\n };\n\n case actionTypes.UPDATE_CIRCLE:\n return {\n ...state,\n circles: state.circles.map((circle) => {\n return circle.id === action.payload.id\n ? {\n ...circle,\n props: {\n ...circle.props,\n ...action.payload.props,\n },\n }\n : circle;\n }),\n };\n case actionTypes.CREATE_SQUARE:\n const newSquare = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const squares = [...state.squares, newSquare];\n return {\n ...state,\n squares: squares,\n };\n\n case actionTypes.UPDATE_SQUARE:\n return {\n ...state,\n squares: state.squares.map((square) => {\n return square.id === action.payload.id\n ? {\n ...square,\n props: {\n ...square.props,\n ...action.payload.props,\n },\n }\n : square;\n }),\n };\n\n case actionTypes.CLEAR_SHAPE:\n if (action.payload.shape === ShapeTypes.CIRCLE) {\n const newCircles = state.circles.filter((circle) => {\n return circle.id !== action.payload.id;\n });\n return {\n ...state,\n circles: newCircles,\n };\n } else if (action.payload.shape === ShapeTypes.SQUARE) {\n const newSquares = state.squares.filter((square) => {\n return square.id !== action.payload.id;\n });\n return {\n ...state,\n squares: newSquares,\n };\n } else if (action.payload.shape === ShapeTypes.EDGE) {\n const newEdges = state.edges.filter((edge) => {\n return edge.id !== action.payload.id;\n });\n return {\n ...state,\n edges: newEdges,\n };\n }\n case actionTypes.ADD_EDGE:\n return {\n ...state,\n edges: [\n ...state.edges,\n {\n id: action.payload.id,\n props: action.payload.props,\n },\n ],\n };\n\n case actionTypes.UPDATE_EDGEE:\n return {\n ...state,\n edges: state.edges.map((edge) => {\n return edge.id === action.payload.id\n ? {\n ...edge,\n props: {\n ...edge.props,\n ...action.payload.props,\n },\n }\n : edge;\n }),\n };\n case actionTypes.UPDATE_DISTANCE:\n return {\n ...state,\n distance: action.payload.distance,\n };\n\n default:\n return state;\n }\n}\n\nexport default codingGame;\n","import * as actionTypes from '../actions/actionTypes';\n\nfunction grid(\n state = {\n gridDots: [],\n lines: [],\n },\n action\n) {\n switch (action.type) {\n case actionTypes.INSERT_DOTS:\n return {\n ...state,\n gridDots: action.payload.dots,\n };\n case actionTypes.INSERT_LINES:\n return {\n ...state,\n lines: action.payload.lines,\n };\n case actionTypes.UPDATE_DOT:\n return {\n ...state,\n gridDots: state.gridDots.map((dot) => {\n return dot.id === action.payload.id\n ? {\n ...dot,\n props: {\n ...dot.props,\n ...action.payload.props,\n },\n }\n : dot;\n }),\n };\n case actionTypes.UPDATE_LINE:\n return {\n ...state,\n lines: state.lines.map((line) => {\n return line.id === action.payload.id\n ? {\n ...line,\n props: {\n ...line.props,\n ...action.payload.props,\n },\n }\n : line;\n }),\n };\n case actionTypes.RESET_GRID:\n return {\n ...state,\n gridDots: state.gridDots.map((dot) => {\n return {\n ...dot,\n props: {\n ...dot.props,\n isSelected: false,\n relatedNodes: [],\n },\n };\n }),\n lines: state.lines.map((line) => {\n return {\n ...line,\n props: {\n ...line.props,\n isSelected: false,\n relatedNodes: [],\n },\n };\n }),\n };\n default:\n return state;\n }\n}\n\nexport default grid;\n","import makeId from '../../utils/makeId';\nimport * as situations from '../../components/boxes/situations';\n\nexport const initialBoxes = [\n [\n {\n id: makeId(),\n props: {\n label: 4,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 7,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 3,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 12,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 1,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 10,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 5,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 20,\n situation: situations.IN_SHELL,\n },\n },\n ],\n [\n {\n id: makeId(),\n props: {\n label: 3,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 12,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 10,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 7,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 7,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 4,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 16,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 11,\n situation: situations.IN_SHELL,\n },\n },\n ],\n\n [\n {\n id: makeId(),\n props: {\n label: 4,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 1,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 5,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 3,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 8,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 3,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 1,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 4,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 7,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 5,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 2,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 9,\n situation: situations.IN_SHELL,\n },\n },\n ],\n\n [\n {\n id: makeId(),\n props: {\n label: 5,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 1,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 1,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 40,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 3,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 2,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 3,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 50,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 1,\n situation: situations.IN_SHELL,\n },\n },\n {\n id: makeId(),\n props: {\n label: 100,\n situation: situations.IN_SHELL,\n },\n },\n ],\n];\n\nexport default initialBoxes;\n","import undoable from 'redux-undo';\nimport * as situations from '../../components/boxes/situations';\nimport * as actionTypes from '../actions/actionTypes';\nimport initialBoxes from './boxesInitialData';\nimport * as boxesModes from './boxesModes';\n\nconst optimums = [21, 24, 18, 100];\n\nfunction boxesSimulation(\n state = {\n boxes: [...initialBoxes[0]],\n optimum: optimums[0],\n round: 1,\n mode: boxesModes.PLAYING,\n totalTime: 0,\n level: 1,\n answer: boxesModes.WRONG_ANSWER,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_BOX:\n const newBox = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const newBoxes = [newBox, ...state.boxes];\n return {\n ...state,\n boxes: newBoxes,\n };\n\n case actionTypes.UPDATE_BOX:\n return {\n ...state,\n boxes: state.boxes.map((box) => {\n return box.id === action.payload.id\n ? {\n ...box,\n props: {\n ...box.props,\n ...action.payload.props,\n },\n }\n : box;\n }),\n };\n\n case actionTypes.DELETE_BOX:\n const newBoxess = state.boxes.filter((box) => {\n return box.id !== action.payload.id;\n });\n return {\n ...state,\n boxes: newBoxess,\n };\n\n case actionTypes.RESET_BOXES:\n return {\n ...state,\n round: 1,\n mode: boxesModes.PLAYING,\n boxes: state.boxes.map((box) => {\n return {\n ...box,\n props: {\n ...box.props,\n situation: situations.IN_SHELL,\n },\n };\n }),\n };\n case actionTypes.NEXT_ROUND:\n return {\n ...state,\n optimum: optimums[state.round],\n round: state.round + 1,\n };\n case actionTypes.CHANGE_GAME_MODE:\n return {\n ...state,\n mode: action.payload.mode,\n };\n case actionTypes.CHANGE_TOTAL_TIME:\n return {\n ...state,\n totalTime: action.payload.totalTime,\n };\n case actionTypes.NEXT_LEVEL:\n return {\n ...state,\n level: action.payload.level,\n };\n case actionTypes.UPDATE_ANSWER:\n return {\n ...state,\n answer: action.payload.answer,\n };\n case actionTypes.CHANGE_BOXES:\n return {\n ...state,\n boxes: initialBoxes[state.round - 1],\n mode: boxesModes.PLAYING,\n };\n default:\n return state;\n }\n}\n\nconst undoableBoxesSimulation = undoable(boxesSimulation, {\n limit: 20,\n filter: (action, state) => {\n return (\n action.type === actionTypes.CREATE_BOX ||\n action.type === actionTypes.UPDATE_BOX\n );\n },\n});\n\nexport default undoableBoxesSimulation;\n","import * as actionTypes from '../actions/actionTypes';\nimport * as gameModes from './dummiesGameModes';\n\nfunction dummiesGame(\n state = {\n dummies: [],\n round: 1,\n totalRounds: rounds[0],\n userWrongNumber: 0,\n level: 1,\n mode: gameModes.START,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_DUMMY:\n const newDummy = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const newDummies = [...state.dummies, newDummy];\n return {\n ...state,\n dummies: newDummies,\n };\n case actionTypes.UPDATE_DUMMY:\n return {\n ...state,\n dummies: state.dummies.map((dummy) => {\n return dummy.id === action.payload.id\n ? {\n ...dummy,\n props: {\n ...dummy.props,\n ...action.payload.props,\n },\n }\n : dummy;\n }),\n };\n case actionTypes.NEXT_DUMMY_ROUND:\n return {\n ...state,\n round: state.round + 1,\n };\n case actionTypes.WRONG_ANSWERED:\n return {\n ...state,\n userWrongNumber: state.userWrongNumber + 1,\n };\n case actionTypes.RESET_DUMMY_GAME:\n return {\n ...state,\n round: 1,\n totalRounds: rounds[0],\n userWrongNumber: 0,\n level: 1,\n };\n case actionTypes.DUMMY_NEXT_LEVEl:\n return {\n ...state,\n round: 1,\n totalRounds: rounds[1],\n userWrongNumber: 0,\n level: 2,\n };\n case actionTypes.DUMMIES_CHANGE_MODE:\n return {\n ...state,\n mode: action.payload.mode,\n };\n\n default:\n return state;\n }\n}\n\nconst rounds = [8, 25];\n\nexport default dummiesGame;\n","import * as actionTypes from '../actions/actionTypes';\nimport makeId from '../../utils/makeId';\n\nfunction verticalLines(\n state = {\n points: [],\n lines: [],\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_POINTS:\n var newPointss = [...state.points];\n action.payload.pointProps.forEach((props) => {\n newPointss = [\n ...newPointss,\n {\n id: makeId(),\n props: props,\n },\n ];\n });\n return {\n ...state,\n points: newPointss,\n };\n case actionTypes.CREATE_POINT:\n const newPoint = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const newPoints = [...state.points, newPoint];\n return {\n ...state,\n points: newPoints,\n };\n case actionTypes.UPDATE_POINT:\n return {\n ...state,\n points: state.points.map((point) => {\n return point.id === action.payload.id\n ? {\n ...point,\n props: {\n ...point.props,\n ...action.payload.props,\n },\n }\n : point;\n }),\n };\n\n case actionTypes.CREATE_LINE:\n const newLine = {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n props: action.payload.props,\n };\n return {\n ...state,\n lines: [...state.lines, newLine],\n };\n case actionTypes.RESET_POINTS:\n return {\n ...state,\n points: [],\n lines: [],\n };\n default:\n return state;\n }\n}\n\nexport default verticalLines;\n","import * as actionTypes from '../actions/actionTypes';\nimport gameTypes from '../../containers/games/gameTypes';\nimport makeId from '../../utils/makeId';\n\nfunction dormGraph(\n state = {\n dormVertices: [],\n dormEdges: [],\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_VERTICE + '_' + gameTypes.DORM_GAME.type:\n const newVertice = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const vertices = [...state.dormVertices, newVertice];\n return {\n ...state,\n dormVertices: vertices,\n };\n case actionTypes.CREATE_EDGE + '_' + gameTypes.DORM_GAME.type:\n return {\n ...state,\n dormEdges: [\n ...state.dormEdges,\n {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n props: action.payload.props,\n },\n ],\n };\n\n case actionTypes.UPDATE_VERTICE + '_' + gameTypes.DORM_GAME.type:\n return {\n ...state,\n dormVertices: state.dormVertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? {\n ...vertice,\n props: {\n ...vertice.props,\n ...action.payload.props,\n },\n }\n : vertice;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.DORM_GAME.type:\n return {\n ...state,\n dormEdges: state.dormEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? {\n ...edge,\n props: {\n ...edge.props,\n ...action.payload.props,\n },\n }\n : edge;\n }),\n };\n\n case actionTypes.SELECT_VERTICE + '_' + gameTypes.DORM_GAME.type:\n return {\n ...state,\n dormVertices: state.dormVertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: true }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_VERTICE + '_' + gameTypes.DORM_GAME.type:\n return {\n ...state,\n dormVertices: state.dormVertices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: false }\n : vertice;\n }),\n };\n case actionTypes.DELETE_VERTEX + '_' + gameTypes.DORM_GAME.type:\n const _vertices = state.dormVertices.filter((vertex) => {\n return vertex.id !== action.payload.id;\n });\n return {\n ...state,\n dormVertices: _vertices,\n };\n\n case actionTypes.DELETE_EDGE + '_' + gameTypes.DORM_GAME.type:\n const _edges = state.dormEdges.filter((edge) => {\n return edge.id !== action.payload.id;\n });\n return {\n ...state,\n dormEdges: _edges,\n };\n\n default:\n return state;\n }\n}\n\nexport default dormGraph;\n","import * as actionTypes from '../actions/actionTypes';\n\nconst initState = { token: null, refresh: null, signuping: false, user: {} };\n\nfunction account(state = initState, action) {\n switch (action.type) {\n case actionTypes.GET_USER_INFO_SUCCESS:\n return {\n ...state,\n user: action.response,\n };\n case actionTypes.GROUP_SIGNUP_REQUEST:\n case actionTypes.SIGNUP_REQUEST:\n return {\n ...state,\n signuping: true,\n };\n case actionTypes.GROUP_SIGNUP_SUCCESS:\n case actionTypes.GROUP_SIGNUP_FAILURE:\n case actionTypes.SIGNUP_SUCCESS:\n case actionTypes.SIGNUP_FAILURE:\n case actionTypes.DISABLE_SIGNUPING:\n return {\n ...state,\n signuping: false,\n };\n case actionTypes.LOGOUT_REQUEST:\n return initState;\n case actionTypes.LOGIN_SUCCESS:\n return {\n ...state,\n token: action.response.access,\n refresh: action.response.refresh,\n };\n case actionTypes.CHECK_PAYMENT_SUCCESS:\n return {\n ...state,\n payment: {\n url: action.response.message,\n amount: action.response.amount,\n typePayment: action.response.typePayment,\n },\n };\n case actionTypes.REMOVE_PAYMENT_DATA:\n return {\n ...state,\n payment: null,\n };\n case actionTypes.SEND_SOLUTION_SUCCESS:\n return {\n ...state,\n sentSolution: true,\n };\n default:\n return state;\n }\n}\n\nexport default account;\n","import * as actionTypes from '../actions/actionTypes';\n\nfunction addMessaage({ state, type, text, mode }) {\n return {\n ...state,\n messages: [...state.messages, { type, text, mode }],\n };\n}\n\nfunction addSuccessMessage({ state, text, mode }) {\n return addMessaage({ state, type: 'success', text, mode });\n}\n\nfunction addErrorMessage({ state, text, mode }) {\n return addMessaage({ state, type: 'error', text, mode });\n}\n\nfunction addRedirect({ state, to }) {\n return {\n ...state,\n redirects: [...state.redirects, { to }],\n };\n}\n\nfunction messages(state = { messages: [], redirects: [] }, action) {\n switch (action.type) {\n case actionTypes.CHANGE_PASSWORD_SUCCESS:\n return addRedirect({\n state: addSuccessMessage({\n state,\n text: 'رمز شما با موفقیت تغییر کرد.',\n }),\n to: '/',\n });\n case actionTypes.SUBMIT_TEAM_SUCCESS:\n return addRedirect({\n state: addSuccessMessage({\n state,\n text: 'نمره و انتقال با موفقیت ثبت شد.',\n }),\n to: '/mentor',\n });\n\n case actionTypes.SEND_SOLUTION_SUCCESS:\n return addSuccessMessage({\n state,\n text: 'جواب شما با موفقیت ثبت شد.',\n mode: 'alert',\n });\n\n // case actionTypes.GET_NOTIFICATIONS_SUCCESS:\n // return addErrorMessage({\n // state,\n // text:\n // 'تیمهای ' +\n // action.response.unread_list.map((unread) => unread.actor_object_id) +\n // ' درخواست منتور دارند.',\n // });\n\n case actionTypes.REQUEST_MENTOR_SUCCESS:\n return addSuccessMessage({\n state,\n text: action.response.text,\n });\n case actionTypes.GROUP_SIGNUP_SUCCESS:\n case actionTypes.SIGNUP_SUCCESS:\n return addRedirect({\n state: addSuccessMessage({\n state,\n text:\n 'ثبتنام با موفقیت انجام شد. ایمیل فعالسازی حساب کاربری برای شما ارسال شد.',\n }),\n to: '/',\n });\n case actionTypes.LOGIN_SUCCESS:\n return addRedirect({\n state: addSuccessMessage({\n state,\n text: 'خوش اومدی.',\n }),\n to: '/',\n });\n case actionTypes.EDIT_EDGES_SUCCESS:\n return addSuccessMessage({\n state,\n text: 'تغییر ثبت شد!',\n });\n case actionTypes.LOGOUT_REQUEST:\n return addRedirect({ state, to: '/' });\n\n case actionTypes.CHECK_PAYMENT_SUCCESS:\n return addRedirect({ state, to: '/payment' });\n\n case actionTypes.CREATE_FSM_SUCCESS:\n return addRedirect({ state, to: '/fsm/' + action.response.id });\n\n case actionTypes.CREATE_FSM_FAILURE:\n case actionTypes.GET_FSM_FAILURE:\n case actionTypes.SEND_SOLUTION_FAILURE:\n case actionTypes.CHECK_PAYMENT_FAILURE:\n case actionTypes.GROUP_SIGNUP_FAILURE:\n case actionTypes.SIGNUP_FAILURE:\n case actionTypes.LOGIN_FAILURE:\n return addErrorMessage({ state, text: action.error });\n case actionTypes.SHIFT_MESSAGE:\n return {\n ...state,\n messages: state.messages.slice(1),\n };\n case actionTypes.SHIFT_REDIRECT:\n return {\n ...state,\n redirects: state.redirects.slice(1),\n };\n default:\n return state;\n }\n}\n\nexport default messages;\n","import * as actionTypes from '../actions/actionTypes';\n\nfunction fsm(state = { workshops: [], pages: [], states:[] }, action) {\n switch (action.type) {\n case actionTypes.GET_CURRENT_PAGE_SUCCESS:\n return {\n ...state,\n pages: [action.response],\n };\n case actionTypes.GET_PAGES_SUCCESS:\n return {\n ...state,\n pages: action.response.filter((page) => !!page.state),\n };\n case actionTypes.GET_FSM_SUCCESS:\n return {\n ...state,\n workshops: action.response,\n };\n case actionTypes.GET_WORKSHOP_SUCCESS:\n return {\n ...state,\n workshops: [\n ...state.workshops.filter(\n (workshop) => workshop.id !== action.response.id\n ),\n action.response,\n ],\n };\n case actionTypes.GET_STATE_SUCCESS:\n return {\n ...state,\n states: [\n ...state.states.filter((stt) => stt.id !== action.response.id),\n action.response,\n ],\n };\n default:\n return state;\n }\n}\n\nexport default fsm;\n","import * as actionTypes from '../actions/actionTypes';\n\nfunction notifs(state = { unreads: [] }, action) {\n switch (action.type) {\n case actionTypes.GET_NOTIFICATIONS_SUCCESS:\n return {\n ...state,\n unreads: action.response.unread_list.map(\n (unread) => unread.actor_object_id\n ),\n };\n default:\n return state;\n }\n}\n\nexport default notifs;\n","import * as actionTypes from '../actions/actionTypes';\n\nfunction teams(state = { teams: [], currentOutwardEdges: [] }, action) {\n switch (action.type) {\n case actionTypes.GET_TEAMS_SUCCESS:\n return {\n ...state,\n teams: action.response,\n };\n case actionTypes.GET_TEAM_SUCCESS:\n return {\n ...state,\n teams: [\n ...state.teams.filter(\n (team) => team.team_id !== action.response.team_id\n ),\n action.response,\n ],\n };\n case actionTypes.GET_TEAM_OUTWARD_EDGES_REQUEST:\n return {\n ...state,\n currentOutwardEdges: [],\n };\n case actionTypes.GET_TEAM_OUTWARD_EDGES_SUCCESS:\n return {\n ...state,\n currentOutwardEdges: action.response,\n };\n default:\n return state;\n }\n}\n\nexport default teams;\n","import * as actionTypes from '../actions/actionTypes';\nimport makeId from '../../utils/makeId';\n\nfunction protractor(\n state = {\n protractor: {\n x: 100,\n y: 100,\n },\n dots: [],\n lines: [],\n littleDots: [\n {\n x: 550,\n y: 286,\n isSelected: false,\n },\n ],\n },\n action\n) {\n switch (action.type) {\n case actionTypes.RESET_MAP:\n return {\n ...state,\n dots: [],\n lines: [],\n littleDots: [\n {\n x: 550,\n y: 286,\n isSelected: false,\n },\n ],\n };\n case actionTypes.ADD_DOT:\n const dot = {\n id: action.payload.id,\n ...action.payload.newDot,\n };\n return {\n ...state,\n dots: [...state.dots, dot],\n };\n case actionTypes.UPDATE_PROTRACTOR:\n return {\n ...state,\n protractor: {\n ...state.protractor,\n ...action.payload.props,\n },\n };\n case actionTypes.UPDATE_LITTLE_DOTS:\n let i = -1;\n const newDots = state.littleDots.map((dot) => {\n i++;\n return i === action.payload.index\n ? {\n ...dot,\n ...action.payload.props,\n }\n : dot;\n });\n return {\n ...state,\n littleDots: newDots,\n };\n case actionTypes.UPDATE_DOTT:\n return {\n ...state,\n dots: state.dots.map((dot) => {\n return dot.id === action.payload.id\n ? {\n ...dot,\n ...action.payload.props,\n }\n : dot;\n }),\n };\n case actionTypes.DRAW_LINE:\n const newLine = {\n from: action.payload.from,\n to: action.payload.to,\n };\n return {\n ...state,\n lines: [...state.lines, newLine],\n };\n default:\n return state;\n }\n}\n\nexport default protractor;\n","import makeId from '../../../utils/makeId';\n\nconst widthScale = window.innerWidth / 671;\nconst heightScale = window.innerHeight / 381;\n\nexport const firstVertices = [\n {\n id: makeId(),\n props: {\n x: 50 * widthScale,\n y: 180 * heightScale,\n },\n },\n {\n id: makeId(),\n props: {\n x: 300 * widthScale,\n y: 50 * heightScale,\n },\n },\n {\n id: makeId(),\n props: {\n x: 300 * widthScale,\n y: 300 * heightScale,\n },\n },\n {\n id: makeId(),\n props: {\n x: 550 * widthScale,\n y: 180 * heightScale,\n },\n },\n];\n\nexport const firstEdges = [\n {\n id: makeId(),\n from: firstVertices[1].id,\n to: firstVertices[0].id,\n a: 1,\n b: 0,\n weight: 0,\n props: {},\n },\n {\n id: makeId(),\n from: firstVertices[3].id,\n to: firstVertices[1].id,\n a: 0,\n b: 100,\n weight: 0,\n props: {},\n },\n {\n id: makeId(),\n from: firstVertices[2].id,\n to: firstVertices[0].id,\n a: 0,\n b: 100,\n weight: 0,\n props: {},\n },\n {\n id: makeId(),\n from: firstVertices[3].id,\n to: firstVertices[2].id,\n a: 1,\n b: 0,\n weight: 0,\n props: {},\n },\n];\n\nexport const secondVertices = [\n {\n id: makeId(),\n props: {\n x: 50 * widthScale,\n y: 180 * heightScale,\n },\n },\n {\n id: makeId(),\n props: {\n x: 300 * widthScale,\n y: 50 * heightScale,\n },\n },\n {\n id: makeId(),\n props: {\n x: 300 * widthScale,\n y: 300 * heightScale,\n },\n },\n {\n id: makeId(),\n props: {\n x: 550 * widthScale,\n y: 180 * heightScale,\n },\n },\n];\n\nexport const secondEdges = [\n {\n id: makeId(),\n from: secondVertices[1].id,\n to: secondVertices[0].id,\n a: 1,\n b: 0,\n weight: 0,\n props: {},\n },\n {\n id: makeId(),\n from: secondVertices[3].id,\n to: secondVertices[1].id,\n a: 0,\n b: 100,\n weight: 0,\n props: {},\n },\n {\n id: makeId(),\n from: secondVertices[2].id,\n to: secondVertices[0].id,\n a: 0,\n b: 100,\n weight: 0,\n props: {},\n },\n {\n id: makeId(),\n from: secondVertices[3].id,\n to: secondVertices[2].id,\n a: 1,\n b: 0,\n weight: 0,\n props: {},\n },\n {\n id: makeId(),\n from: secondVertices[2].id,\n to: secondVertices[1].id,\n a: 0,\n b: 0,\n weight: 0,\n props: {},\n },\n];\n","import {\n firstEdges,\n firstVertices,\n} from '../../containers/games/GameTheoryGames/graphsData';\nimport gameTypes from '../../containers/games/gameTypes';\nimport * as actionTypes from '../actions/actionTypes';\n\nvar tempCapacity = 2;\n\nfunction firstTrafficGraph(\n state = {\n firstVerices: [...firstVertices],\n firstEdges: [...firstEdges],\n firstEdgesCostSum: 0,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_VERTICE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n const newVertice = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const vertices = [...state.firstVerices, newVertice];\n return {\n ...state,\n firstVerices: vertices,\n };\n\n case actionTypes.CREATE_EDGE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstEdges: [\n ...state.firstEdges,\n {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n capacity: ++tempCapacity,\n filled: 0,\n a: 2,\n b: 5,\n weight: 0,\n props: action.payload.props,\n },\n ],\n };\n\n case actionTypes.SELECT_VERTICE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstVerices: state.firstVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: true }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_VERTICE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstVerices: state.firstVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: false }\n : vertice;\n }),\n };\n\n case actionTypes.SELECT_EDGE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstEdges: state.firstEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: true }\n : edge;\n }),\n };\n\n case actionTypes.DESELECT_EDGE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstEdges: state.firstEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: false }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_VERTICE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstVerices: state.firstVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, props: action.payload.props }\n : vertice;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstEdges: state.firstEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, ...action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstEdges: state.firstEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, props: action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.REMOVE_SELECTED_VERTICES +\n '_' +\n gameTypes.FIRST_TRAFFIC_GAME.type:\n const _vertices = state.firstVerices.map(function (vertice) {\n return vertice.id === action.payload.id ? null : vertice;\n });\n return {\n ...state,\n firstVerices: _vertices,\n };\n\n case actionTypes.REMOVE_SELECTED_EDGES +\n '_' +\n gameTypes.FIRST_TRAFFIC_GAME.type:\n const _edges = state.firstEdges.map(function (edge) {\n return edge.id === action.payload.id ? null : edge;\n });\n return {\n ...state,\n firstEdges: _edges,\n };\n case actionTypes.UPDATE_COST + '_' + gameTypes.FIRST_TRAFFIC_GAME.type:\n return {\n ...state,\n firstEdgesCostSum: action.payload.cost,\n };\n\n default:\n return state;\n }\n}\n\nexport default firstTrafficGraph;\n","import {\n secondEdges,\n secondVertices,\n} from '../../containers/games/GameTheoryGames/graphsData';\nimport gameTypes from '../../containers/games/gameTypes';\nimport * as actionTypes from '../actions/actionTypes';\n\nfunction secondTrafficGraph(\n state = {\n secondVerices: [...secondVertices],\n secondEdges: [...secondEdges],\n secondEdgesCostSum: 0,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_VERTICE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n const newVertice = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const vertices = [...state.secondVerices, newVertice];\n return {\n ...state,\n secondVerices: vertices,\n };\n\n case actionTypes.CREATE_EDGE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondEdges: [\n ...state.secondEdges,\n {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n filled: 0,\n a: 2,\n b: 5,\n weight: 0,\n props: action.payload.props,\n },\n ],\n };\n\n case actionTypes.SELECT_VERTICE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondVerices: state.secondVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: true }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_VERTICE +\n '_' +\n gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondVerices: state.secondVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: false }\n : vertice;\n }),\n };\n\n case actionTypes.SELECT_EDGE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondEdges: state.secondEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: true }\n : edge;\n }),\n };\n\n case actionTypes.DESELECT_EDGE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondEdges: state.secondEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: false }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_VERTICE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondVerices: state.secondVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, props: action.payload.props }\n : vertice;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondEdges: state.secondEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, ...action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondEdges: state.secondEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, props: action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.REMOVE_SELECTED_VERTICES +\n '_' +\n gameTypes.SECOND_TRAFFIC_GAME.type:\n const _vertices = state.secondVerices.map(function (vertice) {\n return vertice.id === action.payload.id ? null : vertice;\n });\n return {\n ...state,\n secondVerices: _vertices,\n };\n\n case actionTypes.REMOVE_SELECTED_EDGES +\n '_' +\n gameTypes.SECOND_TRAFFIC_GAME.type:\n const _edges = state.secondEdges.map(function (edge) {\n return edge.id === action.payload.id ? null : edge;\n });\n return {\n ...state,\n secondEdges: _edges,\n };\n case actionTypes.UPDATE_COST + '_' + gameTypes.SECOND_TRAFFIC_GAME.type:\n return {\n ...state,\n secondEdgesCostSum: action.payload.cost,\n };\n\n default:\n return state;\n }\n}\n\nexport default secondTrafficGraph;\n","import { secondEdges, secondVertices } from '../../containers/games/GameTheoryGames/graphsData';\nimport gameTypes from '../../containers/games/gameTypes';\nimport * as actionTypes from '../actions/actionTypes';\n\nvar tempCapacity = 2;\n\nfunction thirdTrafficGraph(\n state = {\n thirdVerices: [...secondVertices],\n thirdEdges: [...secondEdges],\n thirdEdgesCostSum: 0,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.CREATE_VERTICE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n const newVertice = {\n id: action.payload.id,\n props: action.payload.props,\n };\n const vertices = [...state.thirdVerices, newVertice];\n return {\n ...state,\n thirdVerices: vertices,\n };\n\n case actionTypes.CREATE_EDGE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdEdges: [\n ...state.thirdEdges,\n {\n id: action.payload.id,\n from: action.payload.from,\n to: action.payload.to,\n capacity: ++tempCapacity,\n filled: 0,\n a: 2,\n b: 5,\n weight: 0,\n props: action.payload.props,\n },\n ],\n };\n\n case actionTypes.SELECT_VERTICE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdVerices: state.thirdVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: true }\n : vertice;\n }),\n };\n\n case actionTypes.DESELECT_VERTICE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdVerices: state.thirdVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, isSelected: false }\n : vertice;\n }),\n };\n\n case actionTypes.SELECT_EDGE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdEdges: state.thirdEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: true }\n : edge;\n }),\n };\n\n case actionTypes.DESELECT_EDGE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdEdges: state.thirdEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, isSelected: false }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_VERTICE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdVerices: state.thirdVerices.map(function (vertice) {\n return vertice.id === action.payload.id\n ? { ...vertice, props: action.payload.props }\n : vertice;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdEdges: state.thirdEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, ...action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.UPDATE_EDGE + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdEdges: state.thirdEdges.map(function (edge) {\n return edge.id === action.payload.id\n ? { ...edge, props: action.payload.props }\n : edge;\n }),\n };\n\n case actionTypes.REMOVE_SELECTED_VERTICES +\n '_' +\n gameTypes.THIRD_TRAFFIC_GAME.type:\n const _vertices = state.thirdVerices.map(function (vertice) {\n return vertice.id === action.payload.id ? null : vertice;\n });\n return {\n ...state,\n thirdVerices: _vertices,\n };\n\n case actionTypes.REMOVE_SELECTED_EDGES +\n '_' +\n gameTypes.THIRD_TRAFFIC_GAME.type:\n const _edges = state.thirdEdges.map(function (edge) {\n return edge.id === action.payload.id ? null : edge;\n });\n return {\n ...state,\n thirdEdges: _edges,\n };\n case actionTypes.UPDATE_COST + '_' + gameTypes.THIRD_TRAFFIC_GAME.type:\n return {\n ...state,\n thirdEdgesCostSum: action.payload.cost,\n };\n\n default:\n return state;\n }\n}\n\nexport default thirdTrafficGraph;\n","import * as actionTypes from '../actions/actionTypes';\n\nconst init = { params: {}, result: {} };\nfunction auction(state = init, action) {\n switch (action.type) {\n case actionTypes.RESTART_AUCTION:\n return init;\n case actionTypes.JOIN_AUCTION_SUCCESS:\n case actionTypes.CREATE_AUCTION_SUCCESS:\n return {\n ...state,\n params: { ...action.response, response_time: new Date() },\n };\n case actionTypes.BID_SUCCESS:\n return { ...state, params: { ...state.params, submited: true } };\n case actionTypes.AUCTION_RESULT_SUCCESS:\n return { ...state, result: action.response };\n default:\n return state;\n }\n}\n\nexport default auction;\n","import * as actionTypes from '../actions/actionTypes';\nimport * as blanksSituations from '../../components/BlankGame/blanksSituation';\n\nfunction blankGame(\n state = {\n blanks: [\n new Array(11).fill(''),\n new Array(8).fill(''),\n new Array(25).fill(''),\n ],\n blanksSituation: [\n new Array(11).fill(blanksSituations.NONE),\n new Array(8).fill(blanksSituations.NONE),\n new Array(25).fill(blanksSituations.NONE),\n ],\n },\n action\n) {\n switch (action.type) {\n case actionTypes.UPDATE_BLANK:\n const newBlanks = state.blanks[action.payload.gameIndex].map(\n (blank, index) => {\n return index === action.payload.blankIndex\n ? action.payload.newText\n : blank;\n }\n );\n const newGameBlanks = state.blanks.map((gameBlanks, index) => {\n return index === action.payload.gameIndex ? newBlanks : gameBlanks;\n });\n return {\n ...state,\n blanks: newGameBlanks,\n };\n case actionTypes.UPDATE_BLANK_SITUATION:\n const newBlanksSitutations = state.blanksSituation[\n action.payload.gameIndex\n ].map((blank, index) => {\n return index === action.payload.blankIndex\n ? action.payload.newSituation\n : blank;\n });\n const newSitutations = state.blanksSituation.map((gameBlanks, index) => {\n return index === action.payload.gameIndex\n ? newBlanksSitutations\n : gameBlanks;\n });\n return {\n ...state,\n blanksSituation: newSitutations,\n };\n default:\n return state;\n }\n}\n\nexport default blankGame;\n","import { combineReducers } from 'redux';\n\nimport whiteboard from './whiteboard';\nimport graph from './graph';\nimport pipelineGraph from './pipelineGraph';\nimport secondPipelineGraph from './secondPipelineGraph';\nimport codingGame from './codingGame';\nimport grid from './grid';\nimport boxesSimulation from './boxesSimulation';\nimport dummiesGame from './dummiesGame';\nimport verticalLines from './verticalLines';\nimport dormGraph from './dormGraph';\nimport freeFall from './freeFall';\nimport account from './account';\nimport blockChain from './blockChain';\nimport messages from './messages';\nimport fsm from './fsm';\nimport socket from './socket';\nimport notifs from './notifs';\nimport teams from './teams';\nimport AI from './AI';\nimport protractor from './protractor';\nimport firstTrafficGraph from './firstStreeGraph';\nimport secondTrafficGraph from './secondStreetGraph';\nimport thirdTrafficGraph from './thirdStreetGraph';\nimport x_questions from './x-questions';\nimport auction from './auction';\nimport blankGame from './blankGame';\n\nconst allReducers = combineReducers({\n whiteboard,\n account,\n messages,\n fsm,\n socket,\n graph,\n teams,\n pipelineGraph,\n codingGame,\n grid,\n boxesSimulation,\n dummiesGame,\n verticalLines,\n dormGraph,\n freeFall,\n blockChain,\n notifs,\n AI,\n secondPipelineGraph,\n protractor,\n firstTrafficGraph,\n secondTrafficGraph,\n thirdTrafficGraph,\n x_questions,\n auction,\n blankGame,\n});\n\nexport default allReducers;\n","import * as actionTypes from '../actions/actionTypes';\n\nexport default function socket(\n state = {\n connected: false,\n socket: null,\n },\n action\n) {\n switch (action.type) {\n case actionTypes.SOCKET_CONNECTION_INIT:\n return { ...state, connected: false, socket: action.socket };\n\n case actionTypes.CLOSE_SOCKET_CONNECTION:\n state.socket && state.socket.close();\n return { ...state, connected: false, socket: null };\n\n case actionTypes.SOCKET_CONNECTION_SUCCESS:\n return { ...state, connected: true };\n\n case actionTypes.SOCKET_CONNECTION_ERROR:\n return { ...state, connected: false };\n\n case actionTypes.SOCKET_CONNECTION_CLOSED:\n return { ...state, connected: false, socket: null };\n\n default:\n return state;\n }\n}\n","import * as actionTypes from '../actions/actionTypes';\n\nexport default function graph(\n state = {\n state: 0,\n pageNumber: 0,\n power: 1,\n dataX: [],\n dataY: [],\n },\n action\n) {\n switch (action.type) {\n case actionTypes.UPDATE_FREEFALL_STATE:\n return {\n ...state,\n state: action.payload.state,\n };\n\n case actionTypes.UPDATE_FREEFALL_PAGENUMBER:\n return {\n ...state,\n pageNumber: action.payload.pageNumber,\n };\n\n case actionTypes.UPDATE_FREEFALL_DATA:\n return {\n ...state,\n dataX: action.payload.dataX || state.dataX,\n dataY: action.payload.dataY || state.dataY,\n };\n\n case actionTypes.UPDATE_FREEFALL_POWER:\n return {\n ...state,\n power: action.payload.power,\n };\n\n default:\n return state;\n }\n}","import * as actionTypes from '../actions/actionTypes';\n\nexport default function blockChain(\n state = {\n hashData: '',\n isLoading: false,\n pageNumber: 0,\n isFirstAttemp: true,\n\n blockData: '',\n blockNonce: 886,\n\n blockChainData: ['', '', '', '', ''],\n blockChainNonce: [2124, 11127, 4427, 617, 766],\n isBlockChainMining: [false, false, false, false, false],\n\n privateKey: '',\n publicKey: '',\n\n message: '',\n messageSignature: '',\n\n isVerified: false,\n newMessage: '',\n },\n action\n) {\n switch (action.type) {\n case actionTypes.UPDATE_HASH_DATA:\n return {\n ...state,\n hashData: action.payload.hashData,\n };\n\n case actionTypes.UPDATE_BLOCKCHAIN_LOADING:\n return {\n ...state,\n isLoading: action.payload.isLoading,\n };\n\n case actionTypes.UPDATE_PAGE_NUMBER:\n return {\n ...state,\n pageNumber: action.payload.pageNumber,\n };\n\n case actionTypes.UPDATE_FIRST_ATTEMP:\n return {\n ...state,\n isFirstAttemp: action.payload.isFirstAttemp,\n };\n\n ////\n\n case actionTypes.UPDATE_BLOCK_DATA:\n return {\n ...state,\n blockData: action.payload.blockData,\n };\n\n case actionTypes.UPDATE_BLOCK_NONCE:\n return {\n ...state,\n blockNonce: action.payload.blockNonce,\n };\n\n ////\n\n case actionTypes.UPDATE_BLOCKCHAIN_DATA: {\n let { blockChainData, index } = action.payload;\n let newBlockChainData = state.blockChainData;\n newBlockChainData[index] = blockChainData;\n return {\n ...state,\n blockChainData: JSON.parse(JSON.stringify(newBlockChainData)),\n };\n }\n\n case actionTypes.UPDATE_BLOCKCHAIN_NONCE: {\n let { blockChainNonce, index } = action.payload;\n let newBlockChainNonce = state.blockChainNonce;\n newBlockChainNonce[index] = blockChainNonce;\n return {\n ...state,\n blockChainNonce: JSON.parse(JSON.stringify(newBlockChainNonce)),\n };\n }\n\n case actionTypes.UPDATE_BLOCKCHAIN_MINING: {\n let { isBlockChainMining, index } = action.payload;\n let newIsBlockChainMining = state.isBlockChainMining;\n newIsBlockChainMining[index] = isBlockChainMining;\n return {\n ...state,\n isBlockChainMining: JSON.parse(JSON.stringify(newIsBlockChainMining)),\n };\n }\n\n //\n\n case actionTypes.UPDATE_SIGNATURE_PRIVATEKEY:\n return {\n ...state,\n privateKey: action.payload.privateKey,\n };\n\n case actionTypes.UPDATE_SIGNATURE_PUBLICKEY:\n return {\n ...state,\n publicKey: action.payload.publicKey,\n };\n\n //\n\n case actionTypes.UPDATE_MESSAGE:\n return {\n ...state,\n message: action.payload.message,\n };\n\n case actionTypes.UPDATE_MESSAGE_SIGNATURE:\n return {\n ...state,\n messageSignature: action.payload.messageSignature,\n };\n\n //\n\n case actionTypes.UPDATE_NEW_MESSAGE:\n return {\n ...state,\n newMessage: action.payload.newMessage,\n };\n\n case actionTypes.UPDATE_VERIFICATION_STATUS:\n return {\n ...state,\n isVerified: action.payload.isVerified,\n };\n\n default:\n return state;\n }\n}\n","import * as actionTypes from '../actions/actionTypes';\n\nexport default function AI(\n state = {\n state1: 0,\n road1: [],\n x1: null,\n y1: null,\n tetha1: -90,\n\n\n state2: 0,\n road2: [],\n x2: null,\n y2: null,\n tetha2: -90,\n KValue: 0,\n },\n action\n) {\n switch (action.type) {\n\n case actionTypes.UPDATE_ROAD_FIRST_GAME:\n return {\n ...state,\n road1: action.payload.road,\n };\n\n case actionTypes.UPDATE_AI_FIRST_GAME_STATE:\n return {\n ...state,\n state1: action.payload.state,\n };\n\n /////\n\n case actionTypes.UPDATE_ROAD_SECOND_GAME:\n return {\n ...state,\n road2: action.payload.road,\n };\n\n case actionTypes.UPDATE_K_VALUE_SECOND_GAME:\n return {\n ...state,\n KValue: action.payload.KValue,\n };\n\n case actionTypes.UPDATE_AI_SECOND_GAME_STATE:\n return {\n ...state,\n state2: action.payload.state,\n };\n\n ////\n\n default:\n return state;\n }\n}","import * as actionTypes from '../actions/actionTypes';\n\nconst Q_number = 8;\n\nexport default function x_questions(\n state = {\n guessedNumber: '',\n interviewerNumber: '',\n interviewerMessage: '',\n isQuestionAsked: false,\n sets: Array.from(Array(Q_number).keys(), x => ''),\n stateOfSets: Array.from(Array(Q_number).keys(), x => 0),\n },\n action\n) {\n switch (action.type) {\n\n case actionTypes.UPDATE_GUESSED_NUMBER:\n return {\n ...state,\n guessedNumber: action.payload.guessedNumber,\n };\n\n case actionTypes.UPDATE_INTERVIEWER_ANSWER:\n return {\n ...state,\n interviewerNumber: action.payload.interviewerNumber,\n interviewerMessage: action.payload.interviewerMessage,\n };\n\n case actionTypes.UPDATE_QUESTION_STATUS:\n return {\n ...state,\n isQuestionAsked: action.payload.isQuestionAsked,\n };\n\n case actionTypes.UPDATE_SETS:\n {\n const { set, index } = action.payload;\n let newSets = state.sets;\n newSets[index] = set;\n return {\n ...state,\n sets: JSON.parse(JSON.stringify(newSets)),\n };\n }\n\n case actionTypes.UPDATE_STATE_OF_SETS:\n {\n const { stateOfSet, index } = action.payload;\n let newStateofSets = state.stateOfSets;\n newStateofSets[index] = stateOfSet;\n return {\n ...state,\n stateOfSets: JSON.parse(JSON.stringify(newStateofSets)),\n };\n }\n default:\n return state;\n }\n}","import { createStore, applyMiddleware } from 'redux';\nimport thunk from 'redux-thunk';\nimport api from '../middleware/api/api';\nimport socket from '../middleware/socket/socket';\nimport rootReducer from '../reducers';\n\nconst configureStore = (preloadedState) =>\n createStore(rootReducer, preloadedState, applyMiddleware(thunk, api, socket));\n\nexport default configureStore;\n","export default (length = 32) => {\n let result = '';\n const characters =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n};\n"],"sourceRoot":""}
{props.message}