Showing
39 changed files
with
580 additions
and
1901 deletions
1 | -[{"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\index.js":"1","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\App.js":"2","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Login.js":"3","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\index.js":"4","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\component\\LoginForm.js":"5","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Tikz.js":"6","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Html.js":"7","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Home.js":"8","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\component\\tikzForm.js":"9"},{"size":715,"mtime":1607870137130,"results":"10","hashOfConfig":"11"},{"size":594,"mtime":1607870203797,"results":"12","hashOfConfig":"11"},{"size":1242,"mtime":1607869960148,"results":"13","hashOfConfig":"11"},{"size":222,"mtime":1607869960164,"results":"14","hashOfConfig":"11"},{"size":1770,"mtime":1607869866203,"results":"15","hashOfConfig":"11"},{"size":6657,"mtime":1607869960160,"results":"16","hashOfConfig":"11"},{"size":7489,"mtime":1607869960144,"results":"17","hashOfConfig":"11"},{"size":17130,"mtime":1607870130113,"results":"18","hashOfConfig":"11"},{"size":3569,"mtime":1607869866172,"results":"19","hashOfConfig":"11"},{"filePath":"20","messages":"21","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"igk043",{"filePath":"22","messages":"23","errorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"24","messages":"25","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"26","messages":"27","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"28","messages":"29","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"30","messages":"31","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"32","messages":"33","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"34","messages":"35","errorCount":0,"warningCount":19,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"36","messages":"37","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\index.js",["38"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\App.js",["39","40","41","42","43","44","45","46"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Login.js",[],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\index.js",[],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\component\\LoginForm.js",[],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Tikz.js",["47","48","49","50","51","52"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Html.js",["53","54","55","56"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Home.js",["57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\component\\tikzForm.js",["76","77","78","79","80"],{"ruleId":"81","severity":1,"message":"82","line":7,"column":24,"nodeType":"83","messageId":"84","endLine":7,"endColumn":30},{"ruleId":"81","severity":1,"message":"85","line":1,"column":15,"nodeType":"83","messageId":"84","endLine":1,"endColumn":23},{"ruleId":"81","severity":1,"message":"86","line":1,"column":25,"nodeType":"83","messageId":"84","endLine":1,"endColumn":34},{"ruleId":"81","severity":1,"message":"87","line":2,"column":17,"nodeType":"83","messageId":"84","endLine":2,"endColumn":25},{"ruleId":"81","severity":1,"message":"88","line":3,"column":16,"nodeType":"83","messageId":"84","endLine":3,"endColumn":20},{"ruleId":"81","severity":1,"message":"89","line":3,"column":22,"nodeType":"83","messageId":"84","endLine":3,"endColumn":29},{"ruleId":"81","severity":1,"message":"90","line":3,"column":31,"nodeType":"83","messageId":"84","endLine":3,"endColumn":35},{"ruleId":"81","severity":1,"message":"91","line":4,"column":9,"nodeType":"83","messageId":"84","endLine":4,"endColumn":15},{"ruleId":"81","severity":1,"message":"92","line":8,"column":7,"nodeType":"83","messageId":"84","endLine":8,"endColumn":21},{"ruleId":"81","severity":1,"message":"93","line":3,"column":10,"nodeType":"83","messageId":"84","endLine":3,"endColumn":24},{"ruleId":"81","severity":1,"message":"94","line":3,"column":26,"nodeType":"83","messageId":"84","endLine":3,"endColumn":41},{"ruleId":"95","severity":1,"message":"96","line":60,"column":20,"nodeType":"97","messageId":"98","endLine":70,"endColumn":18},{"ruleId":"81","severity":1,"message":"99","line":76,"column":9,"nodeType":"83","messageId":"84","endLine":76,"endColumn":15},{"ruleId":"81","severity":1,"message":"100","line":76,"column":17,"nodeType":"83","messageId":"84","endLine":76,"endColumn":26},{"ruleId":"81","severity":1,"message":"101","line":169,"column":10,"nodeType":"83","messageId":"84","endLine":169,"endColumn":16},{"ruleId":"81","severity":1,"message":"102","line":3,"column":25,"nodeType":"83","messageId":"84","endLine":3,"endColumn":37},{"ruleId":"81","severity":1,"message":"103","line":3,"column":39,"nodeType":"83","messageId":"84","endLine":3,"endColumn":50},{"ruleId":"81","severity":1,"message":"104","line":45,"column":10,"nodeType":"83","messageId":"84","endLine":45,"endColumn":16},{"ruleId":"81","severity":1,"message":"105","line":97,"column":10,"nodeType":"83","messageId":"84","endLine":97,"endColumn":14},{"ruleId":"81","severity":1,"message":"106","line":6,"column":39,"nodeType":"83","messageId":"84","endLine":6,"endColumn":43},{"ruleId":"81","severity":1,"message":"107","line":9,"column":3,"nodeType":"83","messageId":"84","endLine":9,"endColumn":19},{"ruleId":"81","severity":1,"message":"108","line":10,"column":3,"nodeType":"83","messageId":"84","endLine":10,"endColumn":19},{"ruleId":"81","severity":1,"message":"109","line":12,"column":3,"nodeType":"83","messageId":"84","endLine":12,"endColumn":14},{"ruleId":"81","severity":1,"message":"110","line":20,"column":8,"nodeType":"83","messageId":"84","endLine":20,"endColumn":18},{"ruleId":"81","severity":1,"message":"111","line":26,"column":10,"nodeType":"83","messageId":"84","endLine":26,"endColumn":21},{"ruleId":"81","severity":1,"message":"112","line":66,"column":27,"nodeType":"83","messageId":"84","endLine":66,"endColumn":45},{"ruleId":"81","severity":1,"message":"113","line":86,"column":19,"nodeType":"83","messageId":"84","endLine":86,"endColumn":30},{"ruleId":"114","severity":1,"message":"115","line":134,"column":5,"nodeType":"116","endLine":134,"endColumn":60,"suggestions":"117"},{"ruleId":"114","severity":1,"message":"118","line":143,"column":5,"nodeType":"116","endLine":143,"endColumn":45,"suggestions":"119"},{"ruleId":"114","severity":1,"message":"120","line":149,"column":5,"nodeType":"116","endLine":149,"endColumn":59,"suggestions":"121"},{"ruleId":"81","severity":1,"message":"122","line":169,"column":9,"nodeType":"83","messageId":"84","endLine":169,"endColumn":18},{"ruleId":"123","severity":1,"message":"124","line":281,"column":23,"nodeType":"125","messageId":"126","endLine":281,"endColumn":25},{"ruleId":"123","severity":1,"message":"124","line":294,"column":25,"nodeType":"125","messageId":"126","endLine":294,"endColumn":27},{"ruleId":"81","severity":1,"message":"127","line":318,"column":9,"nodeType":"83","messageId":"84","endLine":318,"endColumn":15},{"ruleId":"128","severity":1,"message":"129","line":421,"column":48,"nodeType":"130","endLine":421,"endColumn":63},{"ruleId":"128","severity":1,"message":"129","line":431,"column":145,"nodeType":"130","endLine":431,"endColumn":160},{"ruleId":"128","severity":1,"message":"129","line":441,"column":86,"nodeType":"130","endLine":441,"endColumn":101},{"ruleId":"131","severity":1,"message":"132","line":567,"column":32,"nodeType":"133","endLine":567,"endColumn":319},{"ruleId":"81","severity":1,"message":"134","line":1,"column":15,"nodeType":"83","messageId":"84","endLine":1,"endColumn":23},{"ruleId":"81","severity":1,"message":"135","line":2,"column":10,"nodeType":"83","messageId":"84","endLine":2,"endColumn":16},{"ruleId":"81","severity":1,"message":"136","line":2,"column":33,"nodeType":"83","messageId":"84","endLine":2,"endColumn":37},{"ruleId":"81","severity":1,"message":"137","line":2,"column":55,"nodeType":"83","messageId":"84","endLine":2,"endColumn":67},{"ruleId":"81","severity":1,"message":"93","line":3,"column":10,"nodeType":"83","messageId":"84","endLine":3,"endColumn":24},"no-unused-vars","'Router' is defined but never used.","Identifier","unusedVar","'useState' is defined but never used.","'useEffect' is defined but never used.","'Redirect' is defined but never used.","'Html' is defined but never used.","'Mathcha' is defined but never used.","'Tikz' is defined but never used.","'isauth' is defined but never used.","'authentication' is assigned a value but never used.","'UploadOutlined' is defined but never used.","'RetweetOutlined' is defined but never used.","no-multi-str","Multiline support is limited to browsers supporting ES5 only.","Literal","multilineString","'number' is assigned a value but never used.","'setNumber' is assigned a value but never used.","'result' is assigned a value but never used.","'LockOutlined' is defined but never used.","'SaveTwoTone' is defined but never used.","'upload' is assigned a value but never used.","'onOk' is assigned a value but never used.","'Card' is defined but never used.","'FunctionOutlined' is defined but never used.","'FontSizeOutlined' is defined but never used.","'EyeOutlined' is defined but never used.","'heartgraph' is defined but never used.","'getMathData' is defined but never used.","'setSelectedRowKeys' is assigned a value but never used.","'setPageSize' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useCallback has an unnecessary dependency: 'fetchGetData'. Either exclude it or remove the dependency array. Outer scope values like 'fetchGetData' aren't valid dependencies because mutating them doesn't re-render the component.","ArrayExpression",["138"],"React Hook useEffect has a missing dependency: 'callbackFetch'. Either include it or remove the dependency array.",["139"],"React Hook useEffect has an unnecessary dependency: 'Table'. Either exclude it or remove the dependency array. Outer scope values like 'Table' aren't valid dependencies because mutating them doesn't re-render the component.",["140"],"'showLogin' is assigned a value but never used.","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","'onExit' is assigned a value but never used.","react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" is a security risk: see https://html.spec.whatwg.org/multipage/links.html#link-type-noopener","JSXAttribute","jsx-a11y/iframe-has-title","<iframe> elements must have a unique title property.","JSXOpeningElement","'Flagment' is defined but never used.","'Drawer' is defined but never used.","'Menu' is defined but never used.","'AutoComplete' is defined but never used.",{"desc":"141","fix":"142"},{"desc":"143","fix":"144"},{"desc":"145","fix":"146"},"Update the dependencies array to be: [pageSize, currentPage, orderWhat, orderKind]",{"range":"147","text":"148"},"Update the dependencies array to be: [status, orderKindStatus, orderWhatStatus, callbackFetch]",{"range":"149","text":"150"},"Update the dependencies array to be: [orderWhat, orderWhatKor, orderKind, orderKindKor]",{"range":"151","text":"152"},[3825,3880],"[pageSize, currentPage, orderWhat, orderKind]",[4099,4139],"[status, orderKindStatus, orderWhatStatus, callbackFetch]",[4193,4247],"[orderWhat, orderWhatKor, orderKind, orderKindKor]"] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +[{"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\index.js":"1","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\App.js":"2","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Login.js":"3","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\index.js":"4","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Tikz.js":"5","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Html.js":"6","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Home.js":"7","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\login.js":"8","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\html.js":"9","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\mathCha.js":"10","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\tikz.js":"11"},{"size":665,"mtime":1607870538560,"results":"12","hashOfConfig":"13"},{"size":594,"mtime":1607870429242,"results":"14","hashOfConfig":"13"},{"size":1242,"mtime":1607869960148,"results":"15","hashOfConfig":"13"},{"size":173,"mtime":1607870460096,"results":"16","hashOfConfig":"13"},{"size":6610,"mtime":1607870527409,"results":"17","hashOfConfig":"13"},{"size":7489,"mtime":1607869960144,"results":"18","hashOfConfig":"13"},{"size":17095,"mtime":1607870475409,"results":"19","hashOfConfig":"13"},{"size":515,"mtime":1607870247979,"results":"20","hashOfConfig":"13"},{"size":529,"mtime":1607870247967,"results":"21","hashOfConfig":"13"},{"size":540,"mtime":1607870248003,"results":"22","hashOfConfig":"13"},{"size":1007,"mtime":1607870248045,"results":"23","hashOfConfig":"13"},{"filePath":"24","messages":"25","errorCount":1,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"igk043",{"filePath":"26","messages":"27","errorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"28","messages":"29","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"33","messages":"34","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"35","usedDeprecatedRules":"32"},{"filePath":"36","messages":"37","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"38","messages":"39","errorCount":0,"warningCount":19,"fixableErrorCount":0,"fixableWarningCount":0,"source":"40","usedDeprecatedRules":"32"},{"filePath":"41","messages":"42","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"43","messages":"44","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"45","messages":"46","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"47","messages":"48","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\index.js",["49","50"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\App.js",["51","52","53","54","55","56","57","58"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Login.js",[],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\index.js",[],["59","60"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Tikz.js",["61","62","63","64","65","66"],"import React, { useState, useEffect, useCallback } from 'react';\r\nimport { Drawer, message } from 'antd';\r\nimport { UploadOutlined, RetweetOutlined } from '@ant-design/icons';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { getTexToSvg, checkQno, saveFileAndQno } from '../lib/api/tikz'; // Request api\r\n\r\n\r\n\r\nconst fetchTexToSvg = async (data) => {\r\n\t// getTexToSvg api를 이용하기 위한 const\r\n\ttry {\r\n\t\tconst result = await getTexToSvg({ tex: data });\r\n\t\tif (result.status === 200) {\r\n\t\t\tconsole.log(result.status);\r\n\t\t\tconsole.log(result.data);\r\n\t\t\treturn result.data;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.log(e);\r\n\t\t//Notification. 추가해서 변환상태 알려주기\r\n\t\treturn null;\r\n\t}\r\n};\r\n\r\n\r\nconst fetchSaveData = async (data) => {\r\n\ttry{\r\n\t const result = await saveFileAndQno(data);\r\n\t console.log(result);\r\n\t if(result.status===200){\r\n\t\treturn result.data;\r\n\t } \r\n\t}catch(e){\r\n\t console.log(e);\r\n\t message.warning(e.message);\r\n\t}\r\n }\r\n\r\n/* 문항번호 체크 */\r\nconst fetchCheckQno = async(qno) => {\r\n\ttry{\r\n\t const result = await checkQno(qno);\r\n\t if(result.status===200){\r\n\t\tconsole.log(result);\r\n\t\tmessage.info(\"사용 가능한 문항 번호 입니다.\");\r\n\t\treturn true;\r\n\t }else{ \r\n\t\tmessage.info(\"존재 하지 않는 문항 번호 입니다.\");\r\n\t\treturn false;\r\n\t }\r\n\t}catch(e){\r\n\t console.log(e);\r\n\t message.info(\"존재 하지 않는 문항 번호 입니다.\");\r\n\t return false;\r\n\t}\r\n }\r\n\r\n\r\n const _tikzcode= \"% 예시 (x축, y축, 반지름이 1cm인 원의 그림) %\\n\\\r\n% 오른쪽의 변환 버튼을 눌러보세요! %\\n\\n\\\r\n \\\\documentclass{article}\\n\\\r\n \\\\usepackage{tikz}\\n\\\r\n \\\\begin{document}\\n\\n\\n\\\r\n \\\\begin{tikzpicture}\\n\\\r\n \\\\draw (-1.5,0) -- (1.5,0);\\n\\\r\n \\\\draw (0,-1.5) -- (0,1.5);\\n\\\r\n \\\\draw (0,0) circle (1cm);\\n\\\r\n \\\\end{tikzpicture}\\n\\n\\n\\\r\n \\\\end{document}\";\r\n \r\n \r\n const Tikz = ({ onLeave, visible, callback, selectItem, mode }) => {\r\n\tconst [fields,setFields] =useState([]);\r\n\tconst [qno, setQno] = useState(null);\r\n\tconst [number, setNumber] = useState(null); //문항번호를 저장하는 state\r\n\tconst [inputText, setinputText] = useState(_tikzcode); //tikz code를 저장하는 state\r\n\tconst [svg, setSvg] = useState(null); //변환된 svg 데이터를 저장하는 state\r\n\tconst [qnoCheck,setQnoCheck] = useState(false);\r\n\tconst [tikzcode,setTikzCode] = useState(_tikzcode);\r\n\t//svg\r\n\t//onclickevent : Tikz 변환하기 Button의 onClick Event\r\n\t//onChangeTikz : TextArea 컴포넌트의 onChange event\r\n\t//onFinish : Form data를 제출하기 위한 event\r\n\t\r\n\tuseEffect(()=> {\r\n\t\t\tif(mode==='preview'&&selectItem){\r\n\t\t\t\tconsole.log(selectItem);\r\n\r\n\t\t\t\tlet initFields = [\r\n\t\t\t\t\t{name:['qno'],value:selectItem.qno},\r\n\t\t\t\t\t{name:['typeSol'],value:selectItem.typeSol},\r\n\t\t\t\t\t{name:['typeQue'],value:selectItem.typeQue},\r\n\t\t\t\t\t{name:['creator'],value:selectItem.creator},\r\n\t\t\t\t\r\n\t\t\t\t ];\r\n\t\t\t\t setQno(selectItem.qno);\r\n\t\t\t\t setTikzCode(selectItem.tex);\r\n\t\t\t\t setFields(initFields);\r\n\t\t\t\t setSvg(null);\r\n\t\t\t}\r\n\t},[mode, selectItem]);\r\n\r\n\tuseEffect(()=>{\r\n\t\tif(mode === 'new'){\r\n\t\t\tlet initFields = [\r\n\t\t\t\t{name:['qno'],value:null},\r\n\t\t\t\t{name:['typeSol'],value:null},\r\n\t\t\t\t{name:['typeQue'],value:null},\r\n\t\t\t\t{name:['creator'],value:null},\r\n\t\t\t ];\r\n\t\t\t setQno(null);\r\n\t\t\t setTikzCode(_tikzcode);\r\n\t\t\t setFields(initFields);\r\n\t\t\t setSvg(null);\r\n\t\t}\r\n\t},[mode]);\r\n\r\n\tconst onClickEvent = (e) => {\r\n\t\tif(inputText){\r\n\t\t\tcallbackSVG(inputText);\r\n\t\t}\r\n\t\t\r\n\t\tif (inputText === null) {\r\n\t\t\tconsole.log(inputText);\r\n\t\t\talert(\r\n\t\t\t\t//data에 null이 입력된 경우\r\n\t\t\t\t'Code 값을 입력해주세요!'\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tconsole.log(inputText);\r\n\t\t\tcallbackSVG(inputText);\r\n\t\t}\r\n\t};\r\n\tconst onChangeQno = (value) => {\r\n\t\tconsole.log(value);\r\n\t\tsetQno(value);\r\n\t\tsetFields([...fields, {name:['qno'],value:value}]);\r\n\t};\r\n/*\r\n\tuseEffect(()=>{\r\n\t\tif(!visible ){\r\n\t\t let initFields = [\r\n\t\t\t{name:['qno'],value:null},\r\n\t\t\t{name:['typeSol'],value:null},\r\n\t\t\t{name:['typeQue'],value:null},\r\n\t\t\t{name:['creator'],value:null},\r\n\t\t ];\r\n\t\t setQno(null);\r\n\t\t setTikzCode(tikzcode);\r\n\t\t setFields(initFields);\r\n\t\t}\r\n\t },[visible,mode]);\r\n*/\r\n\tconst callbackSVG = useCallback(async () => {\r\n\t\tconst result = await fetchTexToSvg(inputText);\r\n\t\tsetSvg(result); //api로 받아온 result를 svg state에 저장\r\n\t}, [inputText]);\r\n\r\n\tconst onChangeTikz = (e) => {\r\n\t\tif (e) {\r\n\t\t\tsetinputText(e.target.value);\r\n\t\t} else setinputText(null);\r\n\t};\r\n\r\n\tconst onSaveEvent = () => {\r\n\t\ttry {\r\n\t\t\t//서버에 저장이 확인 됐을때 200, 500(오류) http status\r\n\t\t\tconst result = alert('전송이 성공적으로 완료됐습니다.');\r\n\t\t} catch (e) {\r\n\t\t\t//서버에 저장 오류가 났을때\r\n\t\t\tconsole.log(e);\r\n\t\t\talert(e);\r\n\t\t}\r\n\t};\r\n\tconst onClickQno = async(e)=>{\r\n\t\te.preventDefault();\r\n\t\t//번호가 호출 성공시 setQnoCheck(true);\r\n\t\tif(qno){\r\n\t\t const _checkQno= await fetchCheckQno(qno);\r\n\t\t setQnoCheck(_checkQno);\r\n\t\t}\r\n\t };\r\n\t\r\n\r\n\tconst onFinish = async(values) => {\r\n\t\tconsole.log(values);\r\n\t\tconsole.log(qnoCheck);\r\n\t\tif(!qnoCheck){\r\n\t\t message.warning(\"문제 번호를 확인해 주세요.\")\r\n\t\t return;\r\n\t\t}else{\r\n\t\t\tconst creator = sessionStorage.getItem('id');\r\n\t\t\tconsole.log('Received values of form: ', values); \r\n\t\t\tconst result = await fetchSaveData({...values, creator});\r\n\t\t\tconsole.log(result);\r\n\t\t\tif(result){\r\n\t\t\t message.info(result.message);\r\n\t\t\t let initFields = [\r\n\t\t\t\t{name:['qno'],value:null},\r\n\t\t\t\t{name:['typeSol'],value:null},\r\n\t\t\t\t{name:['typeQue'],value:null},\r\n\t\t\t\t{name:['creator'],value:null},\r\n\t\t\t ];\r\n\t\t\t setFields(initFields);\r\n\t\t\t onLeave();\r\n\t\t\t callback({status:'SAVE_OK'});\r\n\t\t\t setQno(null);\r\n\t\t\t}else{\r\n\t\t\t\tcallback({status:'SAVE_FAIL'})\r\n\t\t\t} \r\n\t\t}\r\n\t};\r\n\r\n\t\r\n\tconst onChangeTypeSol = (value) => {\r\n\t\tconsole.log(value);\r\n\t\tsetFields([...fields, {name:['typeSol'],value:value}]);\r\n\t}\r\n\t\r\n\tconst onChangeTypeQue = (value) => {\r\n\t\tconsole.log(value);\r\n\t\tsetFields([...fields, {name:['typeQue'],value:value}])\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Drawer\r\n\t\t\ttitle={'Tikz Editor'}\r\n\t\t\tplacement={'bottom'}\r\n\t\t\tclosable={true}\r\n\t\t\theight={'90vh'}\r\n\t\t\tonClose={onLeave}\r\n\t\t\tvisible={visible}>\r\n\t\t\t<TikzForm\r\n\t\t\t\tsvg={svg}\r\n\t\t\t\tonClickEvent={onClickEvent}\r\n\t\t\t\tonChangeTikz={onChangeTikz}\r\n\t\t\t\tonSaveEvent={onSaveEvent}\r\n\t\t\t\tonFinish={onFinish}\r\n\t\t\t\ttikzcode={tikzcode}\r\n\t\t\t\tfields={fields}\r\n\t\t\t\tonClickQno={onClickQno}\r\n\t\t\t\tonChangeQno={onChangeQno}\r\n\t\t\t\tonChangeTypeSol={onChangeTypeSol}\r\n\t\t\t\tonChangeTypeQue={onChangeTypeQue}\r\n\t\t\t\tqno={qno}>\r\n\t\t\t</TikzForm>\r\n\t\t</Drawer>\r\n\t);\r\n};\r\n\r\nexport default Tikz;\r\n\r\n//<Transform value={tikzHtml}></Transform>\r\n","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Html.js",["67","68","69","70"],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\Container\\Home.js",["71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89"],"import React, { useState, useEffect, useCallback } from 'react';\r\nimport 'antd/dist/antd.css';\r\nimport './Tikz.css';\r\nimport './Home.css';\r\nimport {withRouter} from 'react-router-dom';\r\nimport { Layout, Menu, Table, Button, Card, Modal,message } from 'antd';\r\nimport {\r\n MenuOutlined,\r\n FunctionOutlined,\r\n FontSizeOutlined,\r\n LineChartOutlined,\r\n EyeOutlined,\r\n DownloadOutlined,\r\n UploadOutlined,\r\n DeleteOutlined,\r\n UserOutlined,\r\n ReadOutlined\r\n} from '@ant-design/icons';\r\nimport mathbank from '../lib/mathbank.png';\r\nimport heartgraph from '../lib/heartgraph.png';\r\nimport Html from './Html.js';\r\n\r\nimport Tikz from './Tikz.js';\r\nimport { Redirect } from 'react-router-dom';\r\nimport {getData} from 'lib/api/html';\r\nimport { getMathData } from '../lib/api/mathCha';\r\nimport { removeItem,removeItems } from '../lib/api/tikz';\r\n\r\nconst { Header, Sider, Content } = Layout;\r\nconst { SubMenu } = Menu;\r\n\r\nconst host= 'http://localhost:5000';\r\n\r\n/* 테이블에 들어가는 컨텐츠 메크로로 생성 */\r\n\r\nconst fetchGetData = async(user, pageSize, currentPage, orderWhat,orderKind) => {\r\n try{\r\n console.log(pageSize);\r\n const result = await getData(user, pageSize, currentPage,orderWhat,orderKind);\r\n if(result.status === 200){\r\n return result.data;\r\n }else {\r\n return null;\r\n }\r\n }catch(e){\r\n console.log(e);\r\n return null;\r\n }\r\n};\r\n\r\n\r\n\r\n//로그아웃 기능 -> session storage 제거 및 Login으로 이동하게 해야함\r\n\r\n\r\n\r\nconst Home = ({history}) => {\r\n const [html, setHtml] = useState(false);\r\n\r\n const [mathcha, setMathcha] = useState(false);\r\n\r\n const [tikz, setTikz] = useState(false);\r\n\r\n const [visible, setVisible] = useState(false);\r\n\r\n const [selectedRowKeys, setSelectedRowKeys] = useState(false);\r\n\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n const [status,setStatus] = useState(null);\r\n\r\n const [data, setData] = useState([]);\r\n\r\n const [selectItem, setSelectItem] = useState(null);\r\n\r\n const [selectItems, setSelectItems] = useState([]);\r\n\r\n const [removeVisible,setRemoveVisible] = useState(false);\r\n\r\n const [mode ,setMode] =useState(null);\r\n\r\n const [tikzmode,setTikzMode] =useState(null);\r\n\r\n const [total, setTotal] =useState(0);\r\n const [currentPage, setCurrentPage] =useState(1);\r\n const [pageSize,setPageSize] =useState(10);\r\n const [orderWhat,setOrderWhat] = useState('qno');\r\n const [orderWhatKor,setOrderWhatKor] =useState('문제번호순');\r\n const [orderKind,setOrderKind] = useState('desc');\r\n const [orderKindKor,setOrderKindKor] = useState('내림차순');\r\n const [orderWhatStatus,setOrderWhatStatus] =useState(false);\r\n const [orderKindStatus,setOrderKindStatus] =useState(false);\r\n const callback = (param) => {\r\n const {status} = param;\r\n if(status){\r\n setStatus(status);\r\n }\r\n }\r\n const onOrderWhat = async() => {\r\n if(orderWhatKor ===\"문제번호순\"){\r\n setOrderWhat('id');\r\n setOrderWhatKor(\"최근등록순\"); \r\n setOrderWhatStatus(true);\r\n }else{\r\n setOrderWhat('qno');\r\n setOrderWhatKor(\"문제번호순\");\r\n setOrderWhatStatus(true);\r\n }\r\n };\r\n const onOrderKind = () => {\r\n if(orderKindKor ===\"내림차순\"){\r\n setOrderKind('asc');\r\n setOrderKindKor(\"오름차순\");\r\n setOrderKindStatus(true);\r\n }else{\r\n setOrderKind('desc')\r\n setOrderKindKor(\"내림차순\");\r\n setOrderKindStatus(true);\r\n }\r\n };\r\n\r\n const callbackFetch = useCallback(async () => {\r\n const user = sessionStorage.getItem('id');\r\n const result = await fetchGetData(user,pageSize,currentPage,orderWhat, orderKind);\r\n console.log(pageSize);\r\n if(result){\r\n console.log(result.tikzs);\r\n setData(result.tikzs.map(x=>Object.assign({},x,{key: x.id})));\r\n setTotal(result.total);\r\n setStatus(null);\r\n setOrderKindStatus(false);\r\n setOrderWhatStatus(false);\r\n }\r\n },[fetchGetData,pageSize,currentPage,orderWhat,orderKind]);\r\n\r\n useEffect(() =>{\r\n if(status==null || (status!=null && status==='SAVE_OK')){\r\n callbackFetch();\r\n }\r\n if(orderKindStatus === true || orderWhatStatus ===true){\r\n callbackFetch();\r\n }\r\n },[status,orderKindStatus,orderWhatStatus])\r\n \r\n \r\n /*파일 정렬 */\r\n useEffect(()=>{\r\n \r\n },[orderWhat,orderWhatKor,orderKind,orderKindKor, Table])\r\n \r\n /* 모달 */\r\n const showModal = (e, value) => {\r\n console.log(value);\r\n setSelectItem(value);\r\n setVisible(!visible);\r\n };\r\n\r\n const handleOk = (e) => {\r\n console.log(e);\r\n setVisible(!visible);\r\n };\r\n\r\n const handleCancel = (e) => {\r\n console.log(e);\r\n setVisible(!visible);\r\n };\r\n\r\n /* 로그인 모달 */\r\n const showLogin = (e) => {\r\n console.log(e);\r\n setVisible(!visible);\r\n };\r\n\r\n const showTikz= (e, value) => {\r\n setTikzMode(\"preview\");\r\n setSelectItem(value);\r\n setTikz(true);\r\n };\r\n\r\n const columns = [\r\n\r\n {\r\n title: '문제 번호',\r\n dataIndex: 'qno',\r\n },\r\n {\r\n title: '문제 타입',\r\n dataIndex: 'typeSol',\r\n },\r\n {\r\n title: '문제/풀이 구분',\r\n dataIndex: 'typeQue',\r\n },\r\n {\r\n title: 'HTML',\r\n dataIndex: 'htmlFileName',\r\n render: (value, row) => {\r\n if(value){\r\n return (\r\n <Button\r\n type=\"dashed\"\r\n shape=\"round\"\r\n icon={<LineChartOutlined />}\r\n onClick={(e)=>showModal(e, row)}\r\n />\r\n );\r\n }else{\r\n return <span>-</span>\r\n }\r\n },\r\n },\r\n {\r\n title: 'Mathcha',\r\n dataIndex: 'mathcharFileName',\r\n render: (value, row) => {\r\n if(value){\r\n return (\r\n <a href={`${host}/mathchaDownload/${value}`}>\r\n <DownloadOutlined/>\r\n </a>\r\n \r\n );\r\n }else{\r\n return <span>-</span>\r\n }\r\n },\r\n },\r\n {\r\n title: 'TikZ',\r\n dataIndex: 'tex',\r\n render:(value, row) => {\r\n if(value){\r\n return (\r\n <Button\r\n type=\"dashed\"\r\n shape=\"round\"\r\n icon={<LineChartOutlined />}\r\n onClick={(e)=> showTikz(e,row)}\r\n />\r\n );\r\n }else{\r\n return <span>-</span>\r\n }\r\n },\r\n },\r\n {\r\n title: '삭제',\r\n dataIndex: 'delete',\r\n render: (value, row) => {\r\n return <Button type=\"text\" icon={<DeleteOutlined />} danger onClick={(e)=>removeShowModal(e,row)}/>;\r\n },\r\n },\r\n {\r\n title: '작성자',\r\n dataIndex: 'creator',\r\n },\r\n ];\r\n\r\n const removeShowModal = (e,row) => {\r\n setSelectItem(row);\r\n setMode('single');\r\n setRemoveVisible(true);\r\n };\r\n \r\n const removeItemsShowModal =() => {\r\n setMode('multi');\r\n setRemoveVisible(true);\r\n };\r\n \r\n \r\n\r\n const removeHandleCancel = () => {\r\n\r\n setRemoveVisible(false);\r\n };\r\n const removeHandleOk = async () => {\r\n if(mode === 'single'){\r\n\r\n try{\r\n const result = await removeItem(selectItem.id);\r\n if(result.status==200){\r\n message.info(\"삭제되었습니다.\");\r\n callbackFetch();\r\n setRemoveVisible(false);\r\n }}catch(e){\r\n console.log(e);\r\n message.warn(e);\r\n }\r\n }\r\n if(mode ==='multi'){\r\n \r\n try{\r\n const result = await removeItems(selectItems);\r\n if(result.status==200){\r\n message.info(\"삭제되었습니다.\");\r\n callbackFetch();\r\n setRemoveVisible(false);\r\n }}catch(e){\r\n console.log(e);\r\n message.warn(e);\r\n }\r\n }\r\n\r\n }\r\n\r\n const onSelectChange = selectedRowKeys => {\r\n console.log('selectedRowKeys Changed: ', selectedRowKeys);\r\n setSelectItems(selectedRowKeys);\r\n }\r\n\r\n const onCancelHtml = () => {\r\n setHtml(false);\r\n };\r\n const onCancelMathCha = () => {\r\n setMathcha(false);\r\n };\r\n\r\n const onExit = () => {\r\n setMathcha(false);\r\n };\r\n\r\n const onLeave = () => {\r\n setSelectItem(null);\r\n setTikz(false);\r\n };\r\n\r\n const onHtml = () => {\r\n setHtml(true);\r\n };\r\n\r\n const onMathcha = () => {\r\n setMathcha(true);\r\n };\r\n\r\n const onTikz = () => {\r\n setTikzMode(\"new\")\r\n setTikz(true);\r\n };\r\n\r\n const toggle = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n const onCollapse = (collapsed, type) => {\r\n //this.setState({ collapsed });\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n\r\n\r\n const rowSelection = {\r\n selectedRowKeys: selectItems, onChange: onSelectChange\r\n };\r\n const hasSelected = selectedRowKeys.length > 0;\r\n\r\n const isAuth = sessionStorage.getItem('isAuth');\r\n const userId = sessionStorage.getItem('id');\r\n if (!isAuth) return <Redirect to=\"/\" />;\r\n\r\n\r\n return (\r\n <Layout>\r\n <Sider\r\n trigger={null}\r\n collapsible\r\n collapsed={!collapsed}\r\n onCollapse={onCollapse}\r\n style={{ height: '100vh' }}>\r\n <img\r\n className=\"mathbank\"\r\n src={mathbank}\r\n alt=\"mathbank\"\r\n onClick={() => window.location.reload()}\r\n style={{\r\n width: 'auto',\r\n height: '54px',\r\n marginLeft: '22px',\r\n marginTop: '10px',\r\n cursor: 'pointer',\r\n }}\r\n />\r\n <Menu\r\n \r\n theme=\"dark\"\r\n defaultSelectedKeys={['1']}\r\n mode=\"inline\"\r\n style={{ fontSize: '18px' }}>\r\n <SubMenu\r\n key=\"sub1\"\r\n icon={<UserOutlined style={{ fontSize: '18px' }} />}\r\n title=\"User's Info\"\r\n style={{ backgroundColor: 'rgb(0, 21, 41)' }}>\r\n <Menu.Item\r\n key=\"1\"\r\n onClick=\"none\"\r\n style={{\r\n width: '200px',\r\n height: '100%',\r\n paddingLeft: '0px',\r\n background: 'rgb(0, 21, 41)',\r\n textAlign: 'center',\r\n }}>\r\n {userId}님 환영합니다.\r\n </Menu.Item>\r\n </SubMenu>\r\n <SubMenu\r\n key=\"sub2\"\r\n icon={<ReadOutlined style={{ fontsize: '15px'}}/>}\r\n title=\"MathCha\"\r\n style={{\r\n backgroundColor: 'rgb(0, 21, 41)'\r\n }}>\r\n <Menu.Item\r\n key=\"1\"\r\n style={{\r\n width: '200px',\r\n height: '100%',\r\n paddingLeft: '0px',\r\n background: 'rgb(0, 21, 41)',\r\n textAlign: 'center',\r\n }}><a href=\"http://mathcha.io\" target=\"_blank\">MathCha 다운로드</a>\r\n </Menu.Item>\r\n <Menu.Item\r\n key=\"2\"\r\n style={{\r\n width: '200px',\r\n height: '100%',\r\n paddingLeft: '0px',\r\n background: 'rgb(0, 21, 41)',\r\n textAlign: 'center',\r\n }}><a href=\"https://m.blog.naver.com/PostView.nhn?blogId=wool613&logNo=221511340406&proxyReferer=https:%2F%2Fwww.google.com%2F\" target=\"_blank\">tikz 간단 설명</a>\r\n </Menu.Item>\r\n <Menu.Item\r\n key=\"3\"\r\n style={{\r\n width: '200px',\r\n height: '100%',\r\n paddingLeft: '0px',\r\n background: 'rgb(0, 21, 41)',\r\n textAlign: 'center',\r\n }}><a href=\"https://www.bu.edu/math/files/2013/08/tikzpgfmanual.pdf\" target=\"_blank\">tikz 상세 메뉴얼</a>\r\n </Menu.Item>\r\n </SubMenu>\r\n </Menu>\r\n </Sider>\r\n <Layout className=\"site-layout\">\r\n <Header className=\"site-layout-background\" style={{ padding: 0 }}>\r\n <MenuOutlined\r\n style={{ marginLeft: '13px' }}\r\n onClick={(collapsed, toggle)}></MenuOutlined>\r\n\r\n <Button className=\"logout\" type=\"default\" onClick={(e)=>{\r\n sessionStorage.removeItem('id');\r\n sessionStorage.removeItem('isAuth');\r\n history.push('/');\r\n \r\n }}>\r\n 로그아웃\r\n </Button>\r\n </Header>\r\n <Content>\r\n <div>\r\n <div style={{ marginBottom: 16 }}>\r\n <span style={{ marginLeft: 8 }}>\r\n {hasSelected ? `Selected ${selectedRowKeys.length} items` : ''}\r\n </span>\r\n </div>\r\n <Button\r\n style={{ display: 'inline-block', top: '0.5vh', left: '8vw' }}\r\n type=\"primary\"\r\n shape=\"round\"\r\n icon={<UploadOutlined />}\r\n onClick={onHtml}>\r\n HTML 업로드\r\n </Button>\r\n <Button\r\n style={{ display: 'inline-block', top: '0.5vh', left: '8.5vw' }}\r\n type=\"primary\"\r\n shape=\"round\"\r\n icon={<UploadOutlined />}\r\n onClick={onMathcha}>\r\n Mathcha 업로드\r\n </Button>\r\n <Button\r\n style={{ display: 'inline-block', top: '0.5vh', left: '9vw' }}\r\n type=\"primary\"\r\n shape=\"round\"\r\n icon={<UploadOutlined />}\r\n onClick={onTikz}>\r\n TikZ 업로드\r\n </Button>\r\n <Button\r\n style={{\r\n display: 'inline-block',\r\n top: '0.5vh',\r\n left: '9.5vw',\r\n }}\r\n type=\"dashed\"\r\n shape=\"round\"\r\n icon={<DeleteOutlined />}\r\n onClick={(e)=>{\r\n console.log(selectItems);\r\n if(selectItems.length>0){\r\n\r\n removeItemsShowModal();\r\n }else{\r\n message.info(\"삭제할 데이터를 선택해 주세요.\");\r\n }\r\n }}\r\n danger>\r\n 선택 삭제\r\n </Button>\r\n\r\n <Button\r\n style={{\r\n display: 'inline-block',\r\n top: '0.5vh',\r\n left: '50vw',\r\n }}className=\"orderWhat\" type=\"default\" onClick={onOrderWhat}>\r\n {orderWhatKor}\r\n </Button>\r\n <Button\r\n style={{\r\n display: 'inline-block',\r\n top: '0.5vh',\r\n left: '50.2vw',\r\n }}className=\"orderKind\" type=\"default\" onClick={onOrderKind}>\r\n {orderKindKor}\r\n </Button>\r\n <Table\r\n rowSelection={rowSelection}\r\n pagination={\r\n { \r\n total: total, \r\n current:currentPage, \r\n pageSize:pageSize,\r\n orderWhat:orderWhat ,\r\n orderKind:orderKind,\r\n onChange:async (page,pageSize)=>{\r\n console.log(page,pageSize);\r\n setCurrentPage(page);\r\n const user = sessionStorage.getItem('id');\r\n const result = await fetchGetData(user,pageSize,page,orderWhat,orderKind);\r\n console.log(pageSize);\r\n if(result){\r\n console.log(result.tikzs);\r\n setData(result.tikzs.map(x=>Object.assign({},x,{key: x.id})));\r\n setTotal(result.total);\r\n setStatus(null);\r\n }\r\n }\r\n }\r\n }\r\n columns={columns}\r\n dataSource={data}\r\n style={{ width: '80vw', marginTop: '1.5vh', marginLeft: '8vw' }}\r\n />\r\n <Modal\r\n title=\"미리보기\"\r\n visible={visible}\r\n centered\r\n width=\"400px\"\r\n height=\"400px\"\r\n onOk={handleOk}\r\n onCancel={handleCancel}>\r\n {\r\n selectItem && <iframe scrolling='no' frameBorder=\"0\" style={{overflow:'hidden' , overflowX:'hidden', overflowY:'hidden' , position:'relative', top:'0px',left:'0px', right:'0px', bottom:'0px' ,height:'300px', width:'350px' }} className=\"iframe\" src={`${host}/htmlPreview/${selectItem.htmlFileName}`}/>\r\n }\r\n </Modal>\r\n <Modal \r\n title=\"다운로드\"\r\n />\r\n <Modal\r\n title=\"삭제하시겠습니까?\"\r\n visible={removeVisible}\r\n onOk={removeHandleOk}\r\n onCancel={removeHandleCancel}\r\n okText=\"확인\"\r\n cancelText=\"취소\"\r\n >\r\n <p>확인을 클릭하시면 삭제됩니다!</p>\r\n </Modal>\r\n <Html visible={html} onCancel={onCancelHtml} callback={callback}></Html>\r\n <Mathcha visible={mathcha} onCancel={onCancelMathCha} callback={callback}></Mathcha>\r\n <Tikz visible={tikz} onLeave={onLeave} callback={callback} selectItem={selectItem} mode={tikzmode}></Tikz>\r\n </div>\r\n </Content>\r\n </Layout>\r\n </Layout>\r\n );\r\n};\r\n\r\nexport default withRouter(Home);\r\n","C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\login.js",[],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\html.js",[],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\mathCha.js",[],"C:\\Users\\kkwan_000\\Desktop\\git\\2017110269\\minsung\\src\\lib\\api\\tikz.js",[],{"ruleId":"90","severity":1,"message":"91","line":6,"column":24,"nodeType":"92","messageId":"93","endLine":6,"endColumn":30},{"ruleId":"94","severity":2,"message":"95","line":21,"column":1,"nodeType":"92","messageId":"96","endLine":21,"endColumn":14},{"ruleId":"90","severity":1,"message":"97","line":1,"column":15,"nodeType":"92","messageId":"93","endLine":1,"endColumn":23},{"ruleId":"90","severity":1,"message":"98","line":1,"column":25,"nodeType":"92","messageId":"93","endLine":1,"endColumn":34},{"ruleId":"90","severity":1,"message":"99","line":2,"column":17,"nodeType":"92","messageId":"93","endLine":2,"endColumn":25},{"ruleId":"90","severity":1,"message":"100","line":3,"column":16,"nodeType":"92","messageId":"93","endLine":3,"endColumn":20},{"ruleId":"90","severity":1,"message":"101","line":3,"column":22,"nodeType":"92","messageId":"93","endLine":3,"endColumn":29},{"ruleId":"90","severity":1,"message":"102","line":3,"column":31,"nodeType":"92","messageId":"93","endLine":3,"endColumn":35},{"ruleId":"90","severity":1,"message":"103","line":4,"column":9,"nodeType":"92","messageId":"93","endLine":4,"endColumn":15},{"ruleId":"90","severity":1,"message":"104","line":8,"column":7,"nodeType":"92","messageId":"93","endLine":8,"endColumn":21},{"ruleId":"105","replacedBy":"106"},{"ruleId":"107","replacedBy":"108"},{"ruleId":"90","severity":1,"message":"109","line":3,"column":10,"nodeType":"92","messageId":"93","endLine":3,"endColumn":24},{"ruleId":"90","severity":1,"message":"110","line":3,"column":26,"nodeType":"92","messageId":"93","endLine":3,"endColumn":41},{"ruleId":"111","severity":1,"message":"112","line":60,"column":20,"nodeType":"113","messageId":"114","endLine":70,"endColumn":18},{"ruleId":"90","severity":1,"message":"115","line":76,"column":9,"nodeType":"92","messageId":"93","endLine":76,"endColumn":15},{"ruleId":"90","severity":1,"message":"116","line":76,"column":17,"nodeType":"92","messageId":"93","endLine":76,"endColumn":26},{"ruleId":"90","severity":1,"message":"117","line":169,"column":10,"nodeType":"92","messageId":"93","endLine":169,"endColumn":16},{"ruleId":"90","severity":1,"message":"118","line":3,"column":25,"nodeType":"92","messageId":"93","endLine":3,"endColumn":37},{"ruleId":"90","severity":1,"message":"119","line":3,"column":39,"nodeType":"92","messageId":"93","endLine":3,"endColumn":50},{"ruleId":"90","severity":1,"message":"120","line":45,"column":10,"nodeType":"92","messageId":"93","endLine":45,"endColumn":16},{"ruleId":"90","severity":1,"message":"121","line":97,"column":10,"nodeType":"92","messageId":"93","endLine":97,"endColumn":14},{"ruleId":"90","severity":1,"message":"122","line":6,"column":39,"nodeType":"92","messageId":"93","endLine":6,"endColumn":43},{"ruleId":"90","severity":1,"message":"123","line":9,"column":3,"nodeType":"92","messageId":"93","endLine":9,"endColumn":19},{"ruleId":"90","severity":1,"message":"124","line":10,"column":3,"nodeType":"92","messageId":"93","endLine":10,"endColumn":19},{"ruleId":"90","severity":1,"message":"125","line":12,"column":3,"nodeType":"92","messageId":"93","endLine":12,"endColumn":14},{"ruleId":"90","severity":1,"message":"126","line":20,"column":8,"nodeType":"92","messageId":"93","endLine":20,"endColumn":18},{"ruleId":"90","severity":1,"message":"127","line":26,"column":10,"nodeType":"92","messageId":"93","endLine":26,"endColumn":21},{"ruleId":"90","severity":1,"message":"128","line":66,"column":27,"nodeType":"92","messageId":"93","endLine":66,"endColumn":45},{"ruleId":"90","severity":1,"message":"129","line":86,"column":19,"nodeType":"92","messageId":"93","endLine":86,"endColumn":30},{"ruleId":"130","severity":1,"message":"131","line":134,"column":5,"nodeType":"132","endLine":134,"endColumn":60,"suggestions":"133"},{"ruleId":"130","severity":1,"message":"134","line":143,"column":5,"nodeType":"132","endLine":143,"endColumn":45,"suggestions":"135"},{"ruleId":"130","severity":1,"message":"136","line":149,"column":5,"nodeType":"132","endLine":149,"endColumn":59,"suggestions":"137"},{"ruleId":"90","severity":1,"message":"138","line":169,"column":9,"nodeType":"92","messageId":"93","endLine":169,"endColumn":18},{"ruleId":"139","severity":1,"message":"140","line":281,"column":23,"nodeType":"141","messageId":"142","endLine":281,"endColumn":25},{"ruleId":"139","severity":1,"message":"140","line":294,"column":25,"nodeType":"141","messageId":"142","endLine":294,"endColumn":27},{"ruleId":"90","severity":1,"message":"143","line":318,"column":9,"nodeType":"92","messageId":"93","endLine":318,"endColumn":15},{"ruleId":"144","severity":1,"message":"145","line":421,"column":48,"nodeType":"146","endLine":421,"endColumn":63},{"ruleId":"144","severity":1,"message":"145","line":431,"column":145,"nodeType":"146","endLine":431,"endColumn":160},{"ruleId":"144","severity":1,"message":"145","line":441,"column":86,"nodeType":"146","endLine":441,"endColumn":101},{"ruleId":"147","severity":1,"message":"148","line":567,"column":32,"nodeType":"149","endLine":567,"endColumn":319},"no-unused-vars","'Router' is defined but never used.","Identifier","unusedVar","no-undef","'serviceWorker' is not defined.","undef","'useState' is defined but never used.","'useEffect' is defined but never used.","'Redirect' is defined but never used.","'Html' is defined but never used.","'Mathcha' is defined but never used.","'Tikz' is defined but never used.","'isauth' is defined but never used.","'authentication' is assigned a value but never used.","no-native-reassign",["150"],"no-negated-in-lhs",["151"],"'UploadOutlined' is defined but never used.","'RetweetOutlined' is defined but never used.","no-multi-str","Multiline support is limited to browsers supporting ES5 only.","Literal","multilineString","'number' is assigned a value but never used.","'setNumber' is assigned a value but never used.","'result' is assigned a value but never used.","'LockOutlined' is defined but never used.","'SaveTwoTone' is defined but never used.","'upload' is assigned a value but never used.","'onOk' is assigned a value but never used.","'Card' is defined but never used.","'FunctionOutlined' is defined but never used.","'FontSizeOutlined' is defined but never used.","'EyeOutlined' is defined but never used.","'heartgraph' is defined but never used.","'getMathData' is defined but never used.","'setSelectedRowKeys' is assigned a value but never used.","'setPageSize' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useCallback has an unnecessary dependency: 'fetchGetData'. Either exclude it or remove the dependency array. Outer scope values like 'fetchGetData' aren't valid dependencies because mutating them doesn't re-render the component.","ArrayExpression",["152"],"React Hook useEffect has a missing dependency: 'callbackFetch'. Either include it or remove the dependency array.",["153"],"React Hook useEffect has an unnecessary dependency: 'Table'. Either exclude it or remove the dependency array. Outer scope values like 'Table' aren't valid dependencies because mutating them doesn't re-render the component.",["154"],"'showLogin' is assigned a value but never used.","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","'onExit' is assigned a value but never used.","react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" is a security risk: see https://html.spec.whatwg.org/multipage/links.html#link-type-noopener","JSXAttribute","jsx-a11y/iframe-has-title","<iframe> elements must have a unique title property.","JSXOpeningElement","no-global-assign","no-unsafe-negation",{"desc":"155","fix":"156"},{"desc":"157","fix":"158"},{"desc":"159","fix":"160"},"Update the dependencies array to be: [pageSize, currentPage, orderWhat, orderKind]",{"range":"161","text":"162"},"Update the dependencies array to be: [status, orderKindStatus, orderWhatStatus, callbackFetch]",{"range":"163","text":"164"},"Update the dependencies array to be: [orderWhat, orderWhatKor, orderKind, orderKindKor]",{"range":"165","text":"166"},[3825,3880],"[pageSize, currentPage, orderWhat, orderKind]",[4099,4139],"[status, orderKindStatus, orderWhatStatus, callbackFetch]",[4193,4247],"[orderWhat, orderWhatKor, orderKind, orderKindKor]"] | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
minsung/README.md
deleted
100644 → 0
1 | -# Getting Started with Create React App | ||
2 | - | ||
3 | -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). | ||
4 | - | ||
5 | -## Available Scripts | ||
6 | - | ||
7 | -In the project directory, you can run: | ||
8 | - | ||
9 | -### `npm start` | ||
10 | - | ||
11 | -Runs the app in the development mode.\ | ||
12 | -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. | ||
13 | - | ||
14 | -The page will reload if you make edits.\ | ||
15 | -You will also see any lint errors in the console. | ||
16 | - | ||
17 | -### `npm test` | ||
18 | - | ||
19 | -Launches the test runner in the interactive watch mode.\ | ||
20 | -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. | ||
21 | - | ||
22 | -### `npm run build` | ||
23 | - | ||
24 | -Builds the app for production to the `build` folder.\ | ||
25 | -It correctly bundles React in production mode and optimizes the build for the best performance. | ||
26 | - | ||
27 | -The build is minified and the filenames include the hashes.\ | ||
28 | -Your app is ready to be deployed! | ||
29 | - | ||
30 | -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. | ||
31 | - | ||
32 | -### `npm run eject` | ||
33 | - | ||
34 | -**Note: this is a one-way operation. Once you `eject`, you can’t go back!** | ||
35 | - | ||
36 | -If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. | ||
37 | - | ||
38 | -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. | ||
39 | - | ||
40 | -You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. | ||
41 | - | ||
42 | -## Learn More | ||
43 | - | ||
44 | -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). | ||
45 | - | ||
46 | -To learn React, check out the [React documentation](https://reactjs.org/). | ||
47 | - | ||
48 | -### Code Splitting | ||
49 | - | ||
50 | -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) | ||
51 | - | ||
52 | -### Analyzing the Bundle Size | ||
53 | - | ||
54 | -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) | ||
55 | - | ||
56 | -### Making a Progressive Web App | ||
57 | - | ||
58 | -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) | ||
59 | - | ||
60 | -### Advanced Configuration | ||
61 | - | ||
62 | -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) | ||
63 | - | ||
64 | -### Deployment | ||
65 | - | ||
66 | -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) | ||
67 | - | ||
68 | -### `npm run build` fails to minify | ||
69 | - | ||
70 | -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) |
... | @@ -4,6 +4,44 @@ | ... | @@ -4,6 +4,44 @@ |
4 | "lockfileVersion": 1, | 4 | "lockfileVersion": 1, |
5 | "requires": true, | 5 | "requires": true, |
6 | "dependencies": { | 6 | "dependencies": { |
7 | + "@ant-design/colors": { | ||
8 | + "version": "5.0.0", | ||
9 | + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-5.0.0.tgz", | ||
10 | + "integrity": "sha512-Pe1rYorgVC1v4f+InDXvIlQH715pO1g7BsOhy/ehX/U6ebPKqojmkYJKU3lF+84Zmvyar7ngZ28hesAa1nWjLg==", | ||
11 | + "requires": { | ||
12 | + "@ctrl/tinycolor": "^3.1.6" | ||
13 | + } | ||
14 | + }, | ||
15 | + "@ant-design/icons": { | ||
16 | + "version": "4.3.0", | ||
17 | + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.3.0.tgz", | ||
18 | + "integrity": "sha512-UoIbw4oz/L/msbkgqs2nls2KP7XNKScOxVR54wRrWwnXOzJaGNwwSdYjHQz+5ETf8C53YPpzMOnRX99LFCdeIQ==", | ||
19 | + "requires": { | ||
20 | + "@ant-design/colors": "^5.0.0", | ||
21 | + "@ant-design/icons-svg": "^4.0.0", | ||
22 | + "@babel/runtime": "^7.11.2", | ||
23 | + "classnames": "^2.2.6", | ||
24 | + "insert-css": "^2.0.0", | ||
25 | + "rc-util": "^5.0.1" | ||
26 | + } | ||
27 | + }, | ||
28 | + "@ant-design/icons-svg": { | ||
29 | + "version": "4.1.0", | ||
30 | + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz", | ||
31 | + "integrity": "sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ==" | ||
32 | + }, | ||
33 | + "@ant-design/react-slick": { | ||
34 | + "version": "0.27.14", | ||
35 | + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-0.27.14.tgz", | ||
36 | + "integrity": "sha512-s6JVexqFmU5rs5Pm828ojtm5rCp8jDXyrc5OxEtCE2z58SIyQlkpnU9BJh98LEeBZyj02WFkGN8CWpSaD+G4PA==", | ||
37 | + "requires": { | ||
38 | + "@babel/runtime": "^7.10.4", | ||
39 | + "classnames": "^2.2.5", | ||
40 | + "json2mq": "^0.2.0", | ||
41 | + "lodash": "^4.17.15", | ||
42 | + "resize-observer-polyfill": "^1.5.0" | ||
43 | + } | ||
44 | + }, | ||
7 | "@babel/code-frame": { | 45 | "@babel/code-frame": { |
8 | "version": "7.10.4", | 46 | "version": "7.10.4", |
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", | 47 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", |
... | @@ -1156,6 +1194,11 @@ | ... | @@ -1156,6 +1194,11 @@ |
1156 | "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", | 1194 | "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", |
1157 | "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" | 1195 | "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" |
1158 | }, | 1196 | }, |
1197 | + "@ctrl/tinycolor": { | ||
1198 | + "version": "3.3.0", | ||
1199 | + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.3.0.tgz", | ||
1200 | + "integrity": "sha512-JKiePztb/QBsucupn4waszYT76DAwiuf+39tE7mlDxL2m2XT2N7z06BVUmPPPyCXvJ8+IFLUkAOqUyYh049E/A==" | ||
1201 | + }, | ||
1159 | "@eslint/eslintrc": { | 1202 | "@eslint/eslintrc": { |
1160 | "version": "0.2.2", | 1203 | "version": "0.2.2", |
1161 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", | 1204 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", |
... | @@ -2768,6 +2811,55 @@ | ... | @@ -2768,6 +2811,55 @@ |
2768 | "color-convert": "^1.9.0" | 2811 | "color-convert": "^1.9.0" |
2769 | } | 2812 | } |
2770 | }, | 2813 | }, |
2814 | + "antd": { | ||
2815 | + "version": "4.9.2", | ||
2816 | + "resolved": "https://registry.npmjs.org/antd/-/antd-4.9.2.tgz", | ||
2817 | + "integrity": "sha512-unZxnwihmIzHDGchZxuJDJe2tfeKWpsZHrrIdQR2hIie7I1lYSn4GyFZvn8MAkQvpum7Mj41eTJKib5TVfYxQw==", | ||
2818 | + "requires": { | ||
2819 | + "@ant-design/colors": "^5.0.0", | ||
2820 | + "@ant-design/icons": "^4.3.0", | ||
2821 | + "@ant-design/react-slick": "~0.27.0", | ||
2822 | + "@babel/runtime": "^7.11.2", | ||
2823 | + "array-tree-filter": "^2.1.0", | ||
2824 | + "classnames": "^2.2.6", | ||
2825 | + "copy-to-clipboard": "^3.2.0", | ||
2826 | + "lodash": "^4.17.20", | ||
2827 | + "moment": "^2.25.3", | ||
2828 | + "omit.js": "^2.0.2", | ||
2829 | + "rc-cascader": "~1.4.0", | ||
2830 | + "rc-checkbox": "~2.3.0", | ||
2831 | + "rc-collapse": "~3.1.0", | ||
2832 | + "rc-dialog": "~8.4.0", | ||
2833 | + "rc-drawer": "~4.1.0", | ||
2834 | + "rc-dropdown": "~3.2.0", | ||
2835 | + "rc-field-form": "~1.17.0", | ||
2836 | + "rc-image": "~4.2.0", | ||
2837 | + "rc-input-number": "~6.1.0", | ||
2838 | + "rc-mentions": "~1.5.0", | ||
2839 | + "rc-menu": "~8.10.0", | ||
2840 | + "rc-motion": "^2.4.0", | ||
2841 | + "rc-notification": "~4.5.2", | ||
2842 | + "rc-pagination": "~3.1.2", | ||
2843 | + "rc-picker": "~2.4.1", | ||
2844 | + "rc-progress": "~3.1.0", | ||
2845 | + "rc-rate": "~2.9.0", | ||
2846 | + "rc-resize-observer": "^0.2.3", | ||
2847 | + "rc-select": "~11.5.3", | ||
2848 | + "rc-slider": "~9.6.1", | ||
2849 | + "rc-steps": "~4.1.0", | ||
2850 | + "rc-switch": "~3.2.0", | ||
2851 | + "rc-table": "~7.11.0", | ||
2852 | + "rc-tabs": "~11.7.0", | ||
2853 | + "rc-textarea": "~0.3.0", | ||
2854 | + "rc-tooltip": "~5.0.0", | ||
2855 | + "rc-tree": "~4.0.0", | ||
2856 | + "rc-tree-select": "~4.2.0", | ||
2857 | + "rc-upload": "~3.3.1", | ||
2858 | + "rc-util": "^5.1.0", | ||
2859 | + "scroll-into-view-if-needed": "^2.2.25", | ||
2860 | + "warning": "^4.0.3" | ||
2861 | + } | ||
2862 | + }, | ||
2771 | "anymatch": { | 2863 | "anymatch": { |
2772 | "version": "3.1.1", | 2864 | "version": "3.1.1", |
2773 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", | 2865 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", |
... | @@ -2836,6 +2928,11 @@ | ... | @@ -2836,6 +2928,11 @@ |
2836 | "is-string": "^1.0.5" | 2928 | "is-string": "^1.0.5" |
2837 | } | 2929 | } |
2838 | }, | 2930 | }, |
2931 | + "array-tree-filter": { | ||
2932 | + "version": "2.1.0", | ||
2933 | + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", | ||
2934 | + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" | ||
2935 | + }, | ||
2839 | "array-union": { | 2936 | "array-union": { |
2840 | "version": "2.1.0", | 2937 | "version": "2.1.0", |
2841 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", | 2938 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", |
... | @@ -2970,6 +3067,11 @@ | ... | @@ -2970,6 +3067,11 @@ |
2970 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", | 3067 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", |
2971 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" | 3068 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" |
2972 | }, | 3069 | }, |
3070 | + "async-validator": { | ||
3071 | + "version": "3.5.1", | ||
3072 | + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.1.tgz", | ||
3073 | + "integrity": "sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ==" | ||
3074 | + }, | ||
2973 | "asynckit": { | 3075 | "asynckit": { |
2974 | "version": "0.4.0", | 3076 | "version": "0.4.0", |
2975 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | 3077 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", |
... | @@ -3977,6 +4079,11 @@ | ... | @@ -3977,6 +4079,11 @@ |
3977 | } | 4079 | } |
3978 | } | 4080 | } |
3979 | }, | 4081 | }, |
4082 | + "classnames": { | ||
4083 | + "version": "2.2.6", | ||
4084 | + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", | ||
4085 | + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" | ||
4086 | + }, | ||
3980 | "clean-css": { | 4087 | "clean-css": { |
3981 | "version": "4.2.3", | 4088 | "version": "4.2.3", |
3982 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", | 4089 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", |
... | @@ -4177,6 +4284,11 @@ | ... | @@ -4177,6 +4284,11 @@ |
4177 | } | 4284 | } |
4178 | } | 4285 | } |
4179 | }, | 4286 | }, |
4287 | + "compute-scroll-into-view": { | ||
4288 | + "version": "1.0.16", | ||
4289 | + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.16.tgz", | ||
4290 | + "integrity": "sha512-a85LHKY81oQnikatZYA90pufpZ6sQx++BoCxOEMsjpZx+ZnaKGQnCyCehTRr/1p9GBIAHTjcU9k71kSYWloLiQ==" | ||
4291 | + }, | ||
4180 | "concat-map": { | 4292 | "concat-map": { |
4181 | "version": "0.0.1", | 4293 | "version": "0.0.1", |
4182 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | 4294 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", |
... | @@ -4301,6 +4413,14 @@ | ... | @@ -4301,6 +4413,14 @@ |
4301 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", | 4413 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", |
4302 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" | 4414 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" |
4303 | }, | 4415 | }, |
4416 | + "copy-to-clipboard": { | ||
4417 | + "version": "3.3.1", | ||
4418 | + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", | ||
4419 | + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", | ||
4420 | + "requires": { | ||
4421 | + "toggle-selection": "^1.0.6" | ||
4422 | + } | ||
4423 | + }, | ||
4304 | "core-js": { | 4424 | "core-js": { |
4305 | "version": "3.8.1", | 4425 | "version": "3.8.1", |
4306 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", | 4426 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", |
... | @@ -4765,6 +4885,16 @@ | ... | @@ -4765,6 +4885,16 @@ |
4765 | "whatwg-url": "^8.0.0" | 4885 | "whatwg-url": "^8.0.0" |
4766 | } | 4886 | } |
4767 | }, | 4887 | }, |
4888 | + "date-fns": { | ||
4889 | + "version": "2.16.1", | ||
4890 | + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.16.1.tgz", | ||
4891 | + "integrity": "sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==" | ||
4892 | + }, | ||
4893 | + "dayjs": { | ||
4894 | + "version": "1.9.7", | ||
4895 | + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.7.tgz", | ||
4896 | + "integrity": "sha512-IC877KBdMhBrCfBfJXHQlo0G8keZ0Opy7YIIq5QKtUbCuHMzim8S4PyiVK4YmihI3iOF9lhfUBW4AQWHTR5WHA==" | ||
4897 | + }, | ||
4768 | "debug": { | 4898 | "debug": { |
4769 | "version": "4.3.1", | 4899 | "version": "4.3.1", |
4770 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | 4900 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", |
... | @@ -5049,6 +5179,11 @@ | ... | @@ -5049,6 +5179,11 @@ |
5049 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", | 5179 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", |
5050 | "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==" | 5180 | "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==" |
5051 | }, | 5181 | }, |
5182 | + "dom-align": { | ||
5183 | + "version": "1.12.0", | ||
5184 | + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz", | ||
5185 | + "integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA==" | ||
5186 | + }, | ||
5052 | "dom-converter": { | 5187 | "dom-converter": { |
5053 | "version": "0.2.0", | 5188 | "version": "0.2.0", |
5054 | "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", | 5189 | "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", |
... | @@ -7040,6 +7175,14 @@ | ... | @@ -7040,6 +7175,14 @@ |
7040 | "minimalistic-crypto-utils": "^1.0.1" | 7175 | "minimalistic-crypto-utils": "^1.0.1" |
7041 | } | 7176 | } |
7042 | }, | 7177 | }, |
7178 | + "hoist-non-react-statics": { | ||
7179 | + "version": "3.3.2", | ||
7180 | + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", | ||
7181 | + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", | ||
7182 | + "requires": { | ||
7183 | + "react-is": "^16.7.0" | ||
7184 | + } | ||
7185 | + }, | ||
7043 | "hoopy": { | 7186 | "hoopy": { |
7044 | "version": "0.1.4", | 7187 | "version": "0.1.4", |
7045 | "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", | 7188 | "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", |
... | @@ -7493,6 +7636,11 @@ | ... | @@ -7493,6 +7636,11 @@ |
7493 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", | 7636 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", |
7494 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" | 7637 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" |
7495 | }, | 7638 | }, |
7639 | + "insert-css": { | ||
7640 | + "version": "2.0.0", | ||
7641 | + "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz", | ||
7642 | + "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ=" | ||
7643 | + }, | ||
7496 | "internal-ip": { | 7644 | "internal-ip": { |
7497 | "version": "4.3.0", | 7645 | "version": "4.3.0", |
7498 | "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", | 7646 | "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", |
... | @@ -9483,6 +9631,14 @@ | ... | @@ -9483,6 +9631,14 @@ |
9483 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | 9631 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", |
9484 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" | 9632 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" |
9485 | }, | 9633 | }, |
9634 | + "json2mq": { | ||
9635 | + "version": "0.2.0", | ||
9636 | + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", | ||
9637 | + "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", | ||
9638 | + "requires": { | ||
9639 | + "string-convert": "^0.2.0" | ||
9640 | + } | ||
9641 | + }, | ||
9486 | "json3": { | 9642 | "json3": { |
9487 | "version": "3.3.3", | 9643 | "version": "3.3.3", |
9488 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", | 9644 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", |
... | @@ -9937,6 +10093,15 @@ | ... | @@ -9937,6 +10093,15 @@ |
9937 | } | 10093 | } |
9938 | } | 10094 | } |
9939 | }, | 10095 | }, |
10096 | + "mini-store": { | ||
10097 | + "version": "3.0.6", | ||
10098 | + "resolved": "https://registry.npmjs.org/mini-store/-/mini-store-3.0.6.tgz", | ||
10099 | + "integrity": "sha512-YzffKHbYsMQGUWQRKdsearR79QsMzzJcDDmZKlJBqt5JNkqpyJHYlK6gP61O36X+sLf76sO9G6mhKBe83gIZIQ==", | ||
10100 | + "requires": { | ||
10101 | + "hoist-non-react-statics": "^3.3.2", | ||
10102 | + "shallowequal": "^1.0.2" | ||
10103 | + } | ||
10104 | + }, | ||
9940 | "minimalistic-assert": { | 10105 | "minimalistic-assert": { |
9941 | "version": "1.0.1", | 10106 | "version": "1.0.1", |
9942 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", | 10107 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", |
... | @@ -10045,6 +10210,11 @@ | ... | @@ -10045,6 +10210,11 @@ |
10045 | "minimist": "^1.2.5" | 10210 | "minimist": "^1.2.5" |
10046 | } | 10211 | } |
10047 | }, | 10212 | }, |
10213 | + "moment": { | ||
10214 | + "version": "2.29.1", | ||
10215 | + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", | ||
10216 | + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" | ||
10217 | + }, | ||
10048 | "move-concurrently": { | 10218 | "move-concurrently": { |
10049 | "version": "1.0.1", | 10219 | "version": "1.0.1", |
10050 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", | 10220 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", |
... | @@ -10462,6 +10632,11 @@ | ... | @@ -10462,6 +10632,11 @@ |
10462 | "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", | 10632 | "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", |
10463 | "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" | 10633 | "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" |
10464 | }, | 10634 | }, |
10635 | + "omit.js": { | ||
10636 | + "version": "2.0.2", | ||
10637 | + "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", | ||
10638 | + "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==" | ||
10639 | + }, | ||
10465 | "on-finished": { | 10640 | "on-finished": { |
10466 | "version": "2.3.0", | 10641 | "version": "2.3.0", |
10467 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", | 10642 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", |
... | @@ -12183,6 +12358,373 @@ | ... | @@ -12183,6 +12358,373 @@ |
12183 | } | 12358 | } |
12184 | } | 12359 | } |
12185 | }, | 12360 | }, |
12361 | + "rc-align": { | ||
12362 | + "version": "4.0.9", | ||
12363 | + "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.9.tgz", | ||
12364 | + "integrity": "sha512-myAM2R4qoB6LqBul0leaqY8gFaiECDJ3MtQDmzDo9xM9NRT/04TvWOYd2YHU9zvGzqk9QXF6S9/MifzSKDZeMw==", | ||
12365 | + "requires": { | ||
12366 | + "@babel/runtime": "^7.10.1", | ||
12367 | + "classnames": "2.x", | ||
12368 | + "dom-align": "^1.7.0", | ||
12369 | + "rc-util": "^5.3.0", | ||
12370 | + "resize-observer-polyfill": "^1.5.1" | ||
12371 | + } | ||
12372 | + }, | ||
12373 | + "rc-cascader": { | ||
12374 | + "version": "1.4.0", | ||
12375 | + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-1.4.0.tgz", | ||
12376 | + "integrity": "sha512-6kgQljDQEKjVAVRkZtvvoi+2qv4u42M6oLuvt4ZDBa16r3X9ZN8TAq3atVyC840ivbGKlHT50OcdVx/iwiHc1w==", | ||
12377 | + "requires": { | ||
12378 | + "array-tree-filter": "^2.1.0", | ||
12379 | + "rc-trigger": "^5.0.4", | ||
12380 | + "rc-util": "^5.0.1", | ||
12381 | + "warning": "^4.0.1" | ||
12382 | + } | ||
12383 | + }, | ||
12384 | + "rc-checkbox": { | ||
12385 | + "version": "2.3.2", | ||
12386 | + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.3.2.tgz", | ||
12387 | + "integrity": "sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==", | ||
12388 | + "requires": { | ||
12389 | + "@babel/runtime": "^7.10.1", | ||
12390 | + "classnames": "^2.2.1" | ||
12391 | + } | ||
12392 | + }, | ||
12393 | + "rc-collapse": { | ||
12394 | + "version": "3.1.0", | ||
12395 | + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.1.0.tgz", | ||
12396 | + "integrity": "sha512-EwpNPJcLe7b+5JfyaxM9ZNnkCgqArt3QQO0Cr5p5plwz/C9h8liAmjYY5I4+hl9lAjBqb7ZwLu94+z+rt5g1WQ==", | ||
12397 | + "requires": { | ||
12398 | + "@babel/runtime": "^7.10.1", | ||
12399 | + "classnames": "2.x", | ||
12400 | + "rc-motion": "^2.3.4", | ||
12401 | + "rc-util": "^5.2.1", | ||
12402 | + "shallowequal": "^1.1.0" | ||
12403 | + } | ||
12404 | + }, | ||
12405 | + "rc-dialog": { | ||
12406 | + "version": "8.4.5", | ||
12407 | + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.4.5.tgz", | ||
12408 | + "integrity": "sha512-0a1Uuy1BRBTdIkfR1VE91kis6dBui7tAIPaQQLj28vBdGg9IqVkiLguCdaDW+4E4vZediePz49PKFbLkx2PL5Q==", | ||
12409 | + "requires": { | ||
12410 | + "@babel/runtime": "^7.10.1", | ||
12411 | + "classnames": "^2.2.6", | ||
12412 | + "rc-motion": "^2.3.0", | ||
12413 | + "rc-util": "^5.0.1" | ||
12414 | + } | ||
12415 | + }, | ||
12416 | + "rc-drawer": { | ||
12417 | + "version": "4.1.0", | ||
12418 | + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-4.1.0.tgz", | ||
12419 | + "integrity": "sha512-kjeQFngPjdzAFahNIV0EvEBoIKMOnvUsAxpkSPELoD/1DuR4nLafom5ryma+TIxGwkFJ92W6yjsMi1U9aiOTeQ==", | ||
12420 | + "requires": { | ||
12421 | + "@babel/runtime": "^7.10.1", | ||
12422 | + "classnames": "^2.2.6", | ||
12423 | + "rc-util": "^5.0.1" | ||
12424 | + } | ||
12425 | + }, | ||
12426 | + "rc-dropdown": { | ||
12427 | + "version": "3.2.0", | ||
12428 | + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-3.2.0.tgz", | ||
12429 | + "integrity": "sha512-j1HSw+/QqlhxyTEF6BArVZnTmezw2LnSmRk6I9W7BCqNCKaRwleRmMMs1PHbuaG8dKHVqP6e21RQ7vPBLVnnNw==", | ||
12430 | + "requires": { | ||
12431 | + "@babel/runtime": "^7.10.1", | ||
12432 | + "classnames": "^2.2.6", | ||
12433 | + "rc-trigger": "^5.0.4" | ||
12434 | + } | ||
12435 | + }, | ||
12436 | + "rc-field-form": { | ||
12437 | + "version": "1.17.2", | ||
12438 | + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.17.2.tgz", | ||
12439 | + "integrity": "sha512-+pufRy5x4G5yHxQ3k1nhgQqyqerPVJQ2jaLGojHjNpmZ2Si20o1KniMLsZxe6X8dfq4ePmH6M3IngfDnS+CrMA==", | ||
12440 | + "requires": { | ||
12441 | + "@babel/runtime": "^7.8.4", | ||
12442 | + "async-validator": "^3.0.3", | ||
12443 | + "rc-util": "^5.0.0" | ||
12444 | + } | ||
12445 | + }, | ||
12446 | + "rc-image": { | ||
12447 | + "version": "4.2.0", | ||
12448 | + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-4.2.0.tgz", | ||
12449 | + "integrity": "sha512-yGqq6wPrIn86hMfC1Hl7M3NNS6zqnl9dvFWJg/StuI86jZBU0rm9rePTfKs+4uiwU3HXxpfsXlaG2p8GWRDLiw==", | ||
12450 | + "requires": { | ||
12451 | + "@ant-design/icons": "^4.2.2", | ||
12452 | + "@babel/runtime": "^7.11.2", | ||
12453 | + "classnames": "^2.2.6", | ||
12454 | + "rc-dialog": "~8.4.0", | ||
12455 | + "rc-util": "^5.0.6" | ||
12456 | + } | ||
12457 | + }, | ||
12458 | + "rc-input-number": { | ||
12459 | + "version": "6.1.1", | ||
12460 | + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-6.1.1.tgz", | ||
12461 | + "integrity": "sha512-9t2xf1G0YEism7FAXAvF1huBk7ZNABPBf6NL+3/aDL123WiT/vhhod4cldiDWTM1Yb2EDKR//ZIa546ScdsUaA==", | ||
12462 | + "requires": { | ||
12463 | + "@babel/runtime": "^7.10.1", | ||
12464 | + "classnames": "^2.2.5", | ||
12465 | + "rc-util": "^5.0.1" | ||
12466 | + } | ||
12467 | + }, | ||
12468 | + "rc-mentions": { | ||
12469 | + "version": "1.5.2", | ||
12470 | + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-1.5.2.tgz", | ||
12471 | + "integrity": "sha512-GqV0tOtHY3pLpOsFCxJ2i6Ad8AVfxFmz0NlD/8rb8IG8pMpthJKcdfnXlNZRx3Fa9O4YEgJpdSY1WEbmlx2DWQ==", | ||
12472 | + "requires": { | ||
12473 | + "@babel/runtime": "^7.10.1", | ||
12474 | + "classnames": "^2.2.6", | ||
12475 | + "rc-menu": "^8.0.1", | ||
12476 | + "rc-textarea": "^0.3.0", | ||
12477 | + "rc-trigger": "^5.0.4", | ||
12478 | + "rc-util": "^5.0.1" | ||
12479 | + } | ||
12480 | + }, | ||
12481 | + "rc-menu": { | ||
12482 | + "version": "8.10.1", | ||
12483 | + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.10.1.tgz", | ||
12484 | + "integrity": "sha512-HmTOLPkSrz5RcdDopD4+nI95YXR2DzdSq9ek3NX2EVgD1UHknlp1QAEJ5MompYdAqdtOspJUqgM/zNt0iQALOw==", | ||
12485 | + "requires": { | ||
12486 | + "@babel/runtime": "^7.10.1", | ||
12487 | + "classnames": "2.x", | ||
12488 | + "mini-store": "^3.0.1", | ||
12489 | + "omit.js": "^2.0.0", | ||
12490 | + "rc-motion": "^2.0.1", | ||
12491 | + "rc-trigger": "^5.1.2", | ||
12492 | + "rc-util": "^5.5.0", | ||
12493 | + "resize-observer-polyfill": "^1.5.0", | ||
12494 | + "shallowequal": "^1.1.0" | ||
12495 | + } | ||
12496 | + }, | ||
12497 | + "rc-motion": { | ||
12498 | + "version": "2.4.1", | ||
12499 | + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.4.1.tgz", | ||
12500 | + "integrity": "sha512-TWLvymfMu8SngPx5MDH8dQ0D2RYbluNTfam4hY/dNNx9RQ3WtGuZ/GXHi2ymLMzH+UNd6EEFYkOuR5JTTtm8Xg==", | ||
12501 | + "requires": { | ||
12502 | + "@babel/runtime": "^7.11.1", | ||
12503 | + "classnames": "^2.2.1", | ||
12504 | + "rc-util": "^5.2.1" | ||
12505 | + } | ||
12506 | + }, | ||
12507 | + "rc-notification": { | ||
12508 | + "version": "4.5.4", | ||
12509 | + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.5.4.tgz", | ||
12510 | + "integrity": "sha512-VsN0ouF4uglE5g3C9oDsXLNYX0Sz++ZNUFYCswkxhpImYJ9u6nJOpyA71uOYDVCu6bAF54Y5Hi/b+EcnMzkepg==", | ||
12511 | + "requires": { | ||
12512 | + "@babel/runtime": "^7.10.1", | ||
12513 | + "classnames": "2.x", | ||
12514 | + "rc-motion": "^2.2.0", | ||
12515 | + "rc-util": "^5.0.1" | ||
12516 | + } | ||
12517 | + }, | ||
12518 | + "rc-pagination": { | ||
12519 | + "version": "3.1.2", | ||
12520 | + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.2.tgz", | ||
12521 | + "integrity": "sha512-KbJvkTvRiD51vTIAi0oTARPUHNb0iV6njbDBe8yLkc3PWYDJaszASfuss6YJ98EIxEeGzuEk6xsUAEKWRJgz2g==", | ||
12522 | + "requires": { | ||
12523 | + "@babel/runtime": "^7.10.1", | ||
12524 | + "classnames": "^2.2.1" | ||
12525 | + } | ||
12526 | + }, | ||
12527 | + "rc-picker": { | ||
12528 | + "version": "2.4.3", | ||
12529 | + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.4.3.tgz", | ||
12530 | + "integrity": "sha512-tOIHslTQKpoGNmbpp6YOBwS39dQSvtAuhOm3bWCkkc4jCqUqeR/velCwqefZX1BX4+t1gUMc1dIia9XvOKrEkg==", | ||
12531 | + "requires": { | ||
12532 | + "@babel/runtime": "^7.10.1", | ||
12533 | + "classnames": "^2.2.1", | ||
12534 | + "date-fns": "^2.15.0", | ||
12535 | + "dayjs": "^1.8.30", | ||
12536 | + "moment": "^2.24.0", | ||
12537 | + "rc-trigger": "^5.0.4", | ||
12538 | + "rc-util": "^5.4.0", | ||
12539 | + "shallowequal": "^1.1.0" | ||
12540 | + } | ||
12541 | + }, | ||
12542 | + "rc-progress": { | ||
12543 | + "version": "3.1.1", | ||
12544 | + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.1.1.tgz", | ||
12545 | + "integrity": "sha512-1ns3pW7ll9bHfdXtlVLF+vngdvlxiCDtiqwXnZFEdurst11JTiPxVdeqnCNbhWx5hP4kCKkAPqG1N0FVfTSUGA==", | ||
12546 | + "requires": { | ||
12547 | + "@babel/runtime": "^7.10.1", | ||
12548 | + "classnames": "^2.2.6" | ||
12549 | + } | ||
12550 | + }, | ||
12551 | + "rc-rate": { | ||
12552 | + "version": "2.9.1", | ||
12553 | + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.9.1.tgz", | ||
12554 | + "integrity": "sha512-MmIU7FT8W4LYRRHJD1sgG366qKtSaKb67D0/vVvJYR0lrCuRrCiVQ5qhfT5ghVO4wuVIORGpZs7ZKaYu+KMUzA==", | ||
12555 | + "requires": { | ||
12556 | + "@babel/runtime": "^7.10.1", | ||
12557 | + "classnames": "^2.2.5", | ||
12558 | + "rc-util": "^5.0.1" | ||
12559 | + } | ||
12560 | + }, | ||
12561 | + "rc-resize-observer": { | ||
12562 | + "version": "0.2.6", | ||
12563 | + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-0.2.6.tgz", | ||
12564 | + "integrity": "sha512-YX6nYnd6fk7zbuvT6oSDMKiZjyngjHoy+fz+vL3Tez38d/G5iGdaDJa2yE7345G6sc4Mm1IGRUIwclvltddhmA==", | ||
12565 | + "requires": { | ||
12566 | + "@babel/runtime": "^7.10.1", | ||
12567 | + "classnames": "^2.2.1", | ||
12568 | + "rc-util": "^5.0.0", | ||
12569 | + "resize-observer-polyfill": "^1.5.1" | ||
12570 | + } | ||
12571 | + }, | ||
12572 | + "rc-select": { | ||
12573 | + "version": "11.5.3", | ||
12574 | + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-11.5.3.tgz", | ||
12575 | + "integrity": "sha512-ASSO4J/ayfbQQ+KOEounIMGhySDHpQtrIuH1WEABOBy8HgKec8kOLmyLH+YIXSUDnTf/gtxmflgFtl7sQ9pkSw==", | ||
12576 | + "requires": { | ||
12577 | + "@babel/runtime": "^7.10.1", | ||
12578 | + "classnames": "2.x", | ||
12579 | + "rc-motion": "^2.0.1", | ||
12580 | + "rc-trigger": "^5.0.4", | ||
12581 | + "rc-util": "^5.0.1", | ||
12582 | + "rc-virtual-list": "^3.2.0", | ||
12583 | + "warning": "^4.0.3" | ||
12584 | + } | ||
12585 | + }, | ||
12586 | + "rc-slider": { | ||
12587 | + "version": "9.6.5", | ||
12588 | + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-9.6.5.tgz", | ||
12589 | + "integrity": "sha512-XRUJDK668hy8MwGnHzZlXCQXXIOUnEs4m2vwk1jgDILVBxI0GwGOlC6T499pYY+NEWg8YgdCOAucFs/+X5WHpg==", | ||
12590 | + "requires": { | ||
12591 | + "@babel/runtime": "^7.10.1", | ||
12592 | + "classnames": "^2.2.5", | ||
12593 | + "rc-tooltip": "^5.0.1", | ||
12594 | + "rc-util": "^5.0.0", | ||
12595 | + "shallowequal": "^1.1.0" | ||
12596 | + } | ||
12597 | + }, | ||
12598 | + "rc-steps": { | ||
12599 | + "version": "4.1.3", | ||
12600 | + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-4.1.3.tgz", | ||
12601 | + "integrity": "sha512-GXrMfWQOhN3sVze3JnzNboHpQdNHcdFubOETUHyDpa/U3HEKBZC3xJ8XK4paBgF4OJ3bdUVLC+uBPc6dCxvDYA==", | ||
12602 | + "requires": { | ||
12603 | + "@babel/runtime": "^7.10.2", | ||
12604 | + "classnames": "^2.2.3", | ||
12605 | + "rc-util": "^5.0.1" | ||
12606 | + } | ||
12607 | + }, | ||
12608 | + "rc-switch": { | ||
12609 | + "version": "3.2.2", | ||
12610 | + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-3.2.2.tgz", | ||
12611 | + "integrity": "sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==", | ||
12612 | + "requires": { | ||
12613 | + "@babel/runtime": "^7.10.1", | ||
12614 | + "classnames": "^2.2.1", | ||
12615 | + "rc-util": "^5.0.1" | ||
12616 | + } | ||
12617 | + }, | ||
12618 | + "rc-table": { | ||
12619 | + "version": "7.11.3", | ||
12620 | + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.11.3.tgz", | ||
12621 | + "integrity": "sha512-YyZry1CdqUrcH7MmWtLQZVvVZWbmTEbI5m650AZ+zYw4D5VF701samkMYl5z/H9yQFr+ugvDtXcya+e3vwRkMQ==", | ||
12622 | + "requires": { | ||
12623 | + "@babel/runtime": "^7.10.1", | ||
12624 | + "classnames": "^2.2.5", | ||
12625 | + "rc-resize-observer": "^0.2.0", | ||
12626 | + "rc-util": "^5.4.0", | ||
12627 | + "shallowequal": "^1.1.0" | ||
12628 | + } | ||
12629 | + }, | ||
12630 | + "rc-tabs": { | ||
12631 | + "version": "11.7.2", | ||
12632 | + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-11.7.2.tgz", | ||
12633 | + "integrity": "sha512-2M/XE4TdecnjsDylJSs49OmjJuDuix3VmSiNaPd50PMqFc+dc4fEof3J8/ad12enicVOcsH4BEQEms//Kn4DBw==", | ||
12634 | + "requires": { | ||
12635 | + "@babel/runtime": "^7.11.2", | ||
12636 | + "classnames": "2.x", | ||
12637 | + "rc-dropdown": "^3.1.3", | ||
12638 | + "rc-menu": "^8.6.1", | ||
12639 | + "rc-resize-observer": "^0.2.1", | ||
12640 | + "rc-util": "^5.5.0" | ||
12641 | + } | ||
12642 | + }, | ||
12643 | + "rc-textarea": { | ||
12644 | + "version": "0.3.1", | ||
12645 | + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-0.3.1.tgz", | ||
12646 | + "integrity": "sha512-bO5Ol5uD6A++aWI6BJ0Pa/8OZcGeacP9LxIGkUqkCwPyOG3kaLOsWb8ya4xCfrsC2P4vDTsHsJmmmG5wuXGFRg==", | ||
12647 | + "requires": { | ||
12648 | + "@babel/runtime": "^7.10.1", | ||
12649 | + "classnames": "^2.2.1", | ||
12650 | + "omit.js": "^2.0.0", | ||
12651 | + "rc-resize-observer": "^0.2.3" | ||
12652 | + } | ||
12653 | + }, | ||
12654 | + "rc-tooltip": { | ||
12655 | + "version": "5.0.1", | ||
12656 | + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.0.1.tgz", | ||
12657 | + "integrity": "sha512-3AnxhUS0j74xAV3khrKw8o6rg+Ima3nw09DJBezMPnX3ImQUAnayWsPSlN1mEnihjA43rcFkGM1emiKE+CXyMQ==", | ||
12658 | + "requires": { | ||
12659 | + "@babel/runtime": "^7.11.2", | ||
12660 | + "rc-trigger": "^5.0.0" | ||
12661 | + } | ||
12662 | + }, | ||
12663 | + "rc-tree": { | ||
12664 | + "version": "4.0.0", | ||
12665 | + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-4.0.0.tgz", | ||
12666 | + "integrity": "sha512-C2xlkA+/IypkHBPzbpAJGVWJh2HjeRbYCusA/m5k09WT6hQT0nC7LtLVmnb7QZecdBQPhoOgQh8gPwBR+xEMjQ==", | ||
12667 | + "requires": { | ||
12668 | + "@babel/runtime": "^7.10.1", | ||
12669 | + "classnames": "2.x", | ||
12670 | + "rc-motion": "^2.0.1", | ||
12671 | + "rc-util": "^5.0.0", | ||
12672 | + "rc-virtual-list": "^3.0.1" | ||
12673 | + } | ||
12674 | + }, | ||
12675 | + "rc-tree-select": { | ||
12676 | + "version": "4.2.0", | ||
12677 | + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-4.2.0.tgz", | ||
12678 | + "integrity": "sha512-VrrvBiOov6WR44RTGMqSw1Dmodg6Y++EH6a6R0ew43qsV4Ob0FGYRgoX811kImtt2Z+oAPJ6zZXN4WKtsQd3Gw==", | ||
12679 | + "requires": { | ||
12680 | + "@babel/runtime": "^7.10.1", | ||
12681 | + "classnames": "2.x", | ||
12682 | + "rc-select": "^11.1.1", | ||
12683 | + "rc-tree": "^4.0.0", | ||
12684 | + "rc-util": "^5.0.5" | ||
12685 | + } | ||
12686 | + }, | ||
12687 | + "rc-trigger": { | ||
12688 | + "version": "5.2.0", | ||
12689 | + "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.2.0.tgz", | ||
12690 | + "integrity": "sha512-fpC1ZkM/IgIIDfF6XHx3Hb2zXy9wvdI5eMh+6DdLygk6Z3HGmkri6ZCXg9a0wfF9AFuzlYTeBLS1uRASZRsnMQ==", | ||
12691 | + "requires": { | ||
12692 | + "@babel/runtime": "^7.11.2", | ||
12693 | + "classnames": "^2.2.6", | ||
12694 | + "rc-align": "^4.0.0", | ||
12695 | + "rc-motion": "^2.0.0", | ||
12696 | + "rc-util": "^5.5.0" | ||
12697 | + } | ||
12698 | + }, | ||
12699 | + "rc-upload": { | ||
12700 | + "version": "3.3.1", | ||
12701 | + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-3.3.1.tgz", | ||
12702 | + "integrity": "sha512-KWkJbVM9BwU8qi/2jZwmZpAcdRzDkuyfn/yAOLu+nm47dyd6//MtxzQD3XZDFkC6jQ6D5FmlKn6DhmOfV3v43w==", | ||
12703 | + "requires": { | ||
12704 | + "@babel/runtime": "^7.10.1", | ||
12705 | + "classnames": "^2.2.5", | ||
12706 | + "rc-util": "^5.2.0" | ||
12707 | + } | ||
12708 | + }, | ||
12709 | + "rc-util": { | ||
12710 | + "version": "5.5.1", | ||
12711 | + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.5.1.tgz", | ||
12712 | + "integrity": "sha512-lnkBptu1RX65GO6jf28scbDMM/9MVl/hYI0uMEVM+cQ0ALLhFChDzgv7ciNpjayCH88wSDHTp6582es4tzJHhA==", | ||
12713 | + "requires": { | ||
12714 | + "react-is": "^16.12.0", | ||
12715 | + "shallowequal": "^1.1.0" | ||
12716 | + } | ||
12717 | + }, | ||
12718 | + "rc-virtual-list": { | ||
12719 | + "version": "3.2.3", | ||
12720 | + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.2.3.tgz", | ||
12721 | + "integrity": "sha512-uEeYDQWwQhxR97SekPeGRbzPtHSbSpw/mYb6QpZZ9bA43kf7s1socV3fD3ySYhQVzo0I+/IUD9jFGit6FbM0WA==", | ||
12722 | + "requires": { | ||
12723 | + "classnames": "^2.2.6", | ||
12724 | + "rc-resize-observer": "^0.2.3", | ||
12725 | + "rc-util": "^5.0.7" | ||
12726 | + } | ||
12727 | + }, | ||
12186 | "react": { | 12728 | "react": { |
12187 | "version": "17.0.1", | 12729 | "version": "17.0.1", |
12188 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", | 12730 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", |
... | @@ -12762,6 +13304,11 @@ | ... | @@ -12762,6 +13304,11 @@ |
12762 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", | 13304 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", |
12763 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" | 13305 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" |
12764 | }, | 13306 | }, |
13307 | + "resize-observer-polyfill": { | ||
13308 | + "version": "1.5.1", | ||
13309 | + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", | ||
13310 | + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" | ||
13311 | + }, | ||
12765 | "resolve": { | 13312 | "resolve": { |
12766 | "version": "1.18.1", | 13313 | "version": "1.18.1", |
12767 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", | 13314 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", |
... | @@ -13242,6 +13789,14 @@ | ... | @@ -13242,6 +13789,14 @@ |
13242 | "ajv-keywords": "^3.5.2" | 13789 | "ajv-keywords": "^3.5.2" |
13243 | } | 13790 | } |
13244 | }, | 13791 | }, |
13792 | + "scroll-into-view-if-needed": { | ||
13793 | + "version": "2.2.26", | ||
13794 | + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.26.tgz", | ||
13795 | + "integrity": "sha512-SQ6AOKfABaSchokAmmaxVnL9IArxEnLEX9j4wAZw+x4iUTb40q7irtHG3z4GtAWz5veVZcCnubXDBRyLVQaohw==", | ||
13796 | + "requires": { | ||
13797 | + "compute-scroll-into-view": "^1.0.16" | ||
13798 | + } | ||
13799 | + }, | ||
13245 | "select-hose": { | 13800 | "select-hose": { |
13246 | "version": "2.0.0", | 13801 | "version": "2.0.0", |
13247 | "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", | 13802 | "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", |
... | @@ -13424,6 +13979,11 @@ | ... | @@ -13424,6 +13979,11 @@ |
13424 | "kind-of": "^6.0.2" | 13979 | "kind-of": "^6.0.2" |
13425 | } | 13980 | } |
13426 | }, | 13981 | }, |
13982 | + "shallowequal": { | ||
13983 | + "version": "1.1.0", | ||
13984 | + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", | ||
13985 | + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" | ||
13986 | + }, | ||
13427 | "shebang-command": { | 13987 | "shebang-command": { |
13428 | "version": "1.2.0", | 13988 | "version": "1.2.0", |
13429 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", | 13989 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", |
... | @@ -13943,6 +14503,11 @@ | ... | @@ -13943,6 +14503,11 @@ |
13943 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", | 14503 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", |
13944 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" | 14504 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" |
13945 | }, | 14505 | }, |
14506 | + "string-convert": { | ||
14507 | + "version": "0.2.1", | ||
14508 | + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", | ||
14509 | + "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" | ||
14510 | + }, | ||
13946 | "string-length": { | 14511 | "string-length": { |
13947 | "version": "4.0.1", | 14512 | "version": "4.0.1", |
13948 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", | 14513 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", |
... | @@ -14490,6 +15055,11 @@ | ... | @@ -14490,6 +15055,11 @@ |
14490 | "is-number": "^7.0.0" | 15055 | "is-number": "^7.0.0" |
14491 | } | 15056 | } |
14492 | }, | 15057 | }, |
15058 | + "toggle-selection": { | ||
15059 | + "version": "1.0.6", | ||
15060 | + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", | ||
15061 | + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" | ||
15062 | + }, | ||
14493 | "toidentifier": { | 15063 | "toidentifier": { |
14494 | "version": "1.0.0", | 15064 | "version": "1.0.0", |
14495 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", | 15065 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", |
... | @@ -14957,6 +15527,14 @@ | ... | @@ -14957,6 +15527,14 @@ |
14957 | "makeerror": "1.0.x" | 15527 | "makeerror": "1.0.x" |
14958 | } | 15528 | } |
14959 | }, | 15529 | }, |
15530 | + "warning": { | ||
15531 | + "version": "4.0.3", | ||
15532 | + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", | ||
15533 | + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", | ||
15534 | + "requires": { | ||
15535 | + "loose-envify": "^1.0.0" | ||
15536 | + } | ||
15537 | + }, | ||
14960 | "watchpack": { | 15538 | "watchpack": { |
14961 | "version": "1.7.5", | 15539 | "version": "1.7.5", |
14962 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", | 15540 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", | ... | ... |
... | @@ -6,6 +6,7 @@ | ... | @@ -6,6 +6,7 @@ |
6 | "@testing-library/jest-dom": "^5.11.6", | 6 | "@testing-library/jest-dom": "^5.11.6", |
7 | "@testing-library/react": "^11.2.2", | 7 | "@testing-library/react": "^11.2.2", |
8 | "@testing-library/user-event": "^12.5.0", | 8 | "@testing-library/user-event": "^12.5.0", |
9 | + "antd": "^4.9.2", | ||
9 | "react": "^17.0.1", | 10 | "react": "^17.0.1", |
10 | "react-dom": "^17.0.1", | 11 | "react-dom": "^17.0.1", |
11 | "react-scripts": "4.0.1", | 12 | "react-scripts": "4.0.1", | ... | ... |
minsung/src/App.css
deleted
100644 → 0
1 | -.trigger { | ||
2 | - font-size: 18px; | ||
3 | - line-height: 64px; | ||
4 | - padding: 0 24px; | ||
5 | - cursor: pointer; | ||
6 | - transition: color 0.3s; | ||
7 | -} | ||
8 | - | ||
9 | -.trigger:hover { | ||
10 | - color: #1890ff; | ||
11 | -} | ||
12 | - | ||
13 | -.logo { | ||
14 | - height: 32px; | ||
15 | - background: rgba(255, 255, 255, 0.2); | ||
16 | - margin: 16px; | ||
17 | -} | ||
18 | - | ||
19 | -.site-layout .site-layout-background { | ||
20 | - background: #fff; | ||
21 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
minsung/src/App.js
deleted
100644 → 0
1 | -import React,{useState, useEffect} from 'react'; | ||
2 | -import { Route, Redirect, withRouter, Switch} from 'react-router-dom'; | ||
3 | -import { Home, Html, Mathcha, Tikz, Login} from './Container'; | ||
4 | -import {isauth} from './Container/Login'; | ||
5 | -//import {ConnectedRouter} from 'connected-react-router'; | ||
6 | - | ||
7 | - | ||
8 | -const authentication = () => {} | ||
9 | - | ||
10 | - | ||
11 | -function App() { | ||
12 | - return ( | ||
13 | - <div> | ||
14 | - <Switch> | ||
15 | - <Route exact path="/" component={Login}/> | ||
16 | - <Route path="/Home" component={Home}/> | ||
17 | - </Switch> | ||
18 | - </div> | ||
19 | - ); | ||
20 | -} | ||
21 | -//history를 쓰는 경우는 Link | ||
22 | -export default withRouter(App); |
minsung/src/Container/Home.css
deleted
100644 → 0
1 | -.site-layout .site-layout-background { | ||
2 | - background: #fff; | ||
3 | -} | ||
4 | - | ||
5 | -[data-theme="dark"] .site-layout .site-layout-background { | ||
6 | - background: #141414; | ||
7 | -} | ||
8 | - | ||
9 | -/* | ||
10 | -.ant-menu-item.ant-menu-item-only-child.ant-menu-item:link { | ||
11 | - background-color: red; | ||
12 | -} | ||
13 | - | ||
14 | -.ant-menu-item.ant-menu-item-only-child.ant-menu-item:visited { | ||
15 | - background-color: red; | ||
16 | -} | ||
17 | -*/ | ||
18 | -.logout { | ||
19 | - position: absolute; | ||
20 | - right:15px; | ||
21 | - top:15px; | ||
22 | - text-align: center; | ||
23 | - justify-content: center; | ||
24 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
minsung/src/Container/Home.js
deleted
100644 → 0
1 | -import React, { useState, useEffect, useCallback } from 'react'; | ||
2 | -import 'antd/dist/antd.css'; | ||
3 | -import './Tikz.css'; | ||
4 | -import './Home.css'; | ||
5 | -import {withRouter} from 'react-router-dom'; | ||
6 | -import { Layout, Menu, Table, Button, Card, Modal,message } from 'antd'; | ||
7 | -import { | ||
8 | - MenuOutlined, | ||
9 | - FunctionOutlined, | ||
10 | - FontSizeOutlined, | ||
11 | - LineChartOutlined, | ||
12 | - EyeOutlined, | ||
13 | - DownloadOutlined, | ||
14 | - UploadOutlined, | ||
15 | - DeleteOutlined, | ||
16 | - UserOutlined, | ||
17 | - ReadOutlined | ||
18 | -} from '@ant-design/icons'; | ||
19 | -import mathbank from '../lib/mathbank.png'; | ||
20 | -import heartgraph from '../lib/heartgraph.png'; | ||
21 | -import Html from './Html.js'; | ||
22 | -import Mathcha from './Mathcha.js'; | ||
23 | -import Tikz from './Tikz.js'; | ||
24 | -import { Redirect } from 'react-router-dom'; | ||
25 | -import {getData} from 'lib/api/html'; | ||
26 | -import { getMathData } from '../lib/api/mathCha'; | ||
27 | -import { removeItem,removeItems } from '../lib/api/tikz'; | ||
28 | - | ||
29 | -const { Header, Sider, Content } = Layout; | ||
30 | -const { SubMenu } = Menu; | ||
31 | - | ||
32 | -const host= 'http://localhost:5000'; | ||
33 | - | ||
34 | -/* 테이블에 들어가는 컨텐츠 메크로로 생성 */ | ||
35 | - | ||
36 | -const fetchGetData = async(user, pageSize, currentPage, orderWhat,orderKind) => { | ||
37 | - try{ | ||
38 | - console.log(pageSize); | ||
39 | - const result = await getData(user, pageSize, currentPage,orderWhat,orderKind); | ||
40 | - if(result.status === 200){ | ||
41 | - return result.data; | ||
42 | - }else { | ||
43 | - return null; | ||
44 | - } | ||
45 | - }catch(e){ | ||
46 | - console.log(e); | ||
47 | - return null; | ||
48 | - } | ||
49 | -}; | ||
50 | - | ||
51 | - | ||
52 | - | ||
53 | -//로그아웃 기능 -> session storage 제거 및 Login으로 이동하게 해야함 | ||
54 | - | ||
55 | - | ||
56 | - | ||
57 | -const Home = ({history}) => { | ||
58 | - const [html, setHtml] = useState(false); | ||
59 | - | ||
60 | - const [mathcha, setMathcha] = useState(false); | ||
61 | - | ||
62 | - const [tikz, setTikz] = useState(false); | ||
63 | - | ||
64 | - const [visible, setVisible] = useState(false); | ||
65 | - | ||
66 | - const [selectedRowKeys, setSelectedRowKeys] = useState(false); | ||
67 | - | ||
68 | - const [collapsed, setCollapsed] = useState(false); | ||
69 | - | ||
70 | - const [status,setStatus] = useState(null); | ||
71 | - | ||
72 | - const [data, setData] = useState([]); | ||
73 | - | ||
74 | - const [selectItem, setSelectItem] = useState(null); | ||
75 | - | ||
76 | - const [selectItems, setSelectItems] = useState([]); | ||
77 | - | ||
78 | - const [removeVisible,setRemoveVisible] = useState(false); | ||
79 | - | ||
80 | - const [mode ,setMode] =useState(null); | ||
81 | - | ||
82 | - const [tikzmode,setTikzMode] =useState(null); | ||
83 | - | ||
84 | - const [total, setTotal] =useState(0); | ||
85 | - const [currentPage, setCurrentPage] =useState(1); | ||
86 | - const [pageSize,setPageSize] =useState(10); | ||
87 | - const [orderWhat,setOrderWhat] = useState('qno'); | ||
88 | - const [orderWhatKor,setOrderWhatKor] =useState('문제번호순'); | ||
89 | - const [orderKind,setOrderKind] = useState('desc'); | ||
90 | - const [orderKindKor,setOrderKindKor] = useState('내림차순'); | ||
91 | - const [orderWhatStatus,setOrderWhatStatus] =useState(false); | ||
92 | - const [orderKindStatus,setOrderKindStatus] =useState(false); | ||
93 | - const callback = (param) => { | ||
94 | - const {status} = param; | ||
95 | - if(status){ | ||
96 | - setStatus(status); | ||
97 | - } | ||
98 | - } | ||
99 | - const onOrderWhat = async() => { | ||
100 | - if(orderWhatKor ==="문제번호순"){ | ||
101 | - setOrderWhat('id'); | ||
102 | - setOrderWhatKor("최근등록순"); | ||
103 | - setOrderWhatStatus(true); | ||
104 | - }else{ | ||
105 | - setOrderWhat('qno'); | ||
106 | - setOrderWhatKor("문제번호순"); | ||
107 | - setOrderWhatStatus(true); | ||
108 | - } | ||
109 | - }; | ||
110 | - const onOrderKind = () => { | ||
111 | - if(orderKindKor ==="내림차순"){ | ||
112 | - setOrderKind('asc'); | ||
113 | - setOrderKindKor("오름차순"); | ||
114 | - setOrderKindStatus(true); | ||
115 | - }else{ | ||
116 | - setOrderKind('desc') | ||
117 | - setOrderKindKor("내림차순"); | ||
118 | - setOrderKindStatus(true); | ||
119 | - } | ||
120 | - }; | ||
121 | - | ||
122 | - const callbackFetch = useCallback(async () => { | ||
123 | - const user = sessionStorage.getItem('id'); | ||
124 | - const result = await fetchGetData(user,pageSize,currentPage,orderWhat, orderKind); | ||
125 | - console.log(pageSize); | ||
126 | - if(result){ | ||
127 | - console.log(result.tikzs); | ||
128 | - setData(result.tikzs.map(x=>Object.assign({},x,{key: x.id}))); | ||
129 | - setTotal(result.total); | ||
130 | - setStatus(null); | ||
131 | - setOrderKindStatus(false); | ||
132 | - setOrderWhatStatus(false); | ||
133 | - } | ||
134 | - },[fetchGetData,pageSize,currentPage,orderWhat,orderKind]); | ||
135 | - | ||
136 | - useEffect(() =>{ | ||
137 | - if(status==null || (status!=null && status==='SAVE_OK')){ | ||
138 | - callbackFetch(); | ||
139 | - } | ||
140 | - if(orderKindStatus === true || orderWhatStatus ===true){ | ||
141 | - callbackFetch(); | ||
142 | - } | ||
143 | - },[status,orderKindStatus,orderWhatStatus]) | ||
144 | - | ||
145 | - | ||
146 | - /*파일 정렬 */ | ||
147 | - useEffect(()=>{ | ||
148 | - | ||
149 | - },[orderWhat,orderWhatKor,orderKind,orderKindKor, Table]) | ||
150 | - | ||
151 | - /* 모달 */ | ||
152 | - const showModal = (e, value) => { | ||
153 | - console.log(value); | ||
154 | - setSelectItem(value); | ||
155 | - setVisible(!visible); | ||
156 | - }; | ||
157 | - | ||
158 | - const handleOk = (e) => { | ||
159 | - console.log(e); | ||
160 | - setVisible(!visible); | ||
161 | - }; | ||
162 | - | ||
163 | - const handleCancel = (e) => { | ||
164 | - console.log(e); | ||
165 | - setVisible(!visible); | ||
166 | - }; | ||
167 | - | ||
168 | - /* 로그인 모달 */ | ||
169 | - const showLogin = (e) => { | ||
170 | - console.log(e); | ||
171 | - setVisible(!visible); | ||
172 | - }; | ||
173 | - | ||
174 | - const showTikz= (e, value) => { | ||
175 | - setTikzMode("preview"); | ||
176 | - setSelectItem(value); | ||
177 | - setTikz(true); | ||
178 | - }; | ||
179 | - | ||
180 | - const columns = [ | ||
181 | - | ||
182 | - { | ||
183 | - title: '문제 번호', | ||
184 | - dataIndex: 'qno', | ||
185 | - }, | ||
186 | - { | ||
187 | - title: '문제 타입', | ||
188 | - dataIndex: 'typeSol', | ||
189 | - }, | ||
190 | - { | ||
191 | - title: '문제/풀이 구분', | ||
192 | - dataIndex: 'typeQue', | ||
193 | - }, | ||
194 | - { | ||
195 | - title: 'HTML', | ||
196 | - dataIndex: 'htmlFileName', | ||
197 | - render: (value, row) => { | ||
198 | - if(value){ | ||
199 | - return ( | ||
200 | - <Button | ||
201 | - type="dashed" | ||
202 | - shape="round" | ||
203 | - icon={<LineChartOutlined />} | ||
204 | - onClick={(e)=>showModal(e, row)} | ||
205 | - /> | ||
206 | - ); | ||
207 | - }else{ | ||
208 | - return <span>-</span> | ||
209 | - } | ||
210 | - }, | ||
211 | - }, | ||
212 | - { | ||
213 | - title: 'Mathcha', | ||
214 | - dataIndex: 'mathcharFileName', | ||
215 | - render: (value, row) => { | ||
216 | - if(value){ | ||
217 | - return ( | ||
218 | - <a href={`${host}/mathchaDownload/${value}`}> | ||
219 | - <DownloadOutlined/> | ||
220 | - </a> | ||
221 | - | ||
222 | - ); | ||
223 | - }else{ | ||
224 | - return <span>-</span> | ||
225 | - } | ||
226 | - }, | ||
227 | - }, | ||
228 | - { | ||
229 | - title: 'TikZ', | ||
230 | - dataIndex: 'tex', | ||
231 | - render:(value, row) => { | ||
232 | - if(value){ | ||
233 | - return ( | ||
234 | - <Button | ||
235 | - type="dashed" | ||
236 | - shape="round" | ||
237 | - icon={<LineChartOutlined />} | ||
238 | - onClick={(e)=> showTikz(e,row)} | ||
239 | - /> | ||
240 | - ); | ||
241 | - }else{ | ||
242 | - return <span>-</span> | ||
243 | - } | ||
244 | - }, | ||
245 | - }, | ||
246 | - { | ||
247 | - title: '삭제', | ||
248 | - dataIndex: 'delete', | ||
249 | - render: (value, row) => { | ||
250 | - return <Button type="text" icon={<DeleteOutlined />} danger onClick={(e)=>removeShowModal(e,row)}/>; | ||
251 | - }, | ||
252 | - }, | ||
253 | - { | ||
254 | - title: '작성자', | ||
255 | - dataIndex: 'creator', | ||
256 | - }, | ||
257 | - ]; | ||
258 | - | ||
259 | - const removeShowModal = (e,row) => { | ||
260 | - setSelectItem(row); | ||
261 | - setMode('single'); | ||
262 | - setRemoveVisible(true); | ||
263 | - }; | ||
264 | - | ||
265 | - const removeItemsShowModal =() => { | ||
266 | - setMode('multi'); | ||
267 | - setRemoveVisible(true); | ||
268 | - }; | ||
269 | - | ||
270 | - | ||
271 | - | ||
272 | - const removeHandleCancel = () => { | ||
273 | - | ||
274 | - setRemoveVisible(false); | ||
275 | - }; | ||
276 | - const removeHandleOk = async () => { | ||
277 | - if(mode === 'single'){ | ||
278 | - | ||
279 | - try{ | ||
280 | - const result = await removeItem(selectItem.id); | ||
281 | - if(result.status==200){ | ||
282 | - message.info("삭제되었습니다."); | ||
283 | - callbackFetch(); | ||
284 | - setRemoveVisible(false); | ||
285 | - }}catch(e){ | ||
286 | - console.log(e); | ||
287 | - message.warn(e); | ||
288 | - } | ||
289 | - } | ||
290 | - if(mode ==='multi'){ | ||
291 | - | ||
292 | - try{ | ||
293 | - const result = await removeItems(selectItems); | ||
294 | - if(result.status==200){ | ||
295 | - message.info("삭제되었습니다."); | ||
296 | - callbackFetch(); | ||
297 | - setRemoveVisible(false); | ||
298 | - }}catch(e){ | ||
299 | - console.log(e); | ||
300 | - message.warn(e); | ||
301 | - } | ||
302 | - } | ||
303 | - | ||
304 | - } | ||
305 | - | ||
306 | - const onSelectChange = selectedRowKeys => { | ||
307 | - console.log('selectedRowKeys Changed: ', selectedRowKeys); | ||
308 | - setSelectItems(selectedRowKeys); | ||
309 | - } | ||
310 | - | ||
311 | - const onCancelHtml = () => { | ||
312 | - setHtml(false); | ||
313 | - }; | ||
314 | - const onCancelMathCha = () => { | ||
315 | - setMathcha(false); | ||
316 | - }; | ||
317 | - | ||
318 | - const onExit = () => { | ||
319 | - setMathcha(false); | ||
320 | - }; | ||
321 | - | ||
322 | - const onLeave = () => { | ||
323 | - setSelectItem(null); | ||
324 | - setTikz(false); | ||
325 | - }; | ||
326 | - | ||
327 | - const onHtml = () => { | ||
328 | - setHtml(true); | ||
329 | - }; | ||
330 | - | ||
331 | - const onMathcha = () => { | ||
332 | - setMathcha(true); | ||
333 | - }; | ||
334 | - | ||
335 | - const onTikz = () => { | ||
336 | - setTikzMode("new") | ||
337 | - setTikz(true); | ||
338 | - }; | ||
339 | - | ||
340 | - const toggle = () => { | ||
341 | - setCollapsed(!collapsed); | ||
342 | - }; | ||
343 | - | ||
344 | - const onCollapse = (collapsed, type) => { | ||
345 | - //this.setState({ collapsed }); | ||
346 | - setCollapsed(!collapsed); | ||
347 | - }; | ||
348 | - | ||
349 | - | ||
350 | - | ||
351 | - const rowSelection = { | ||
352 | - selectedRowKeys: selectItems, onChange: onSelectChange | ||
353 | - }; | ||
354 | - const hasSelected = selectedRowKeys.length > 0; | ||
355 | - | ||
356 | - const isAuth = sessionStorage.getItem('isAuth'); | ||
357 | - const userId = sessionStorage.getItem('id'); | ||
358 | - if (!isAuth) return <Redirect to="/" />; | ||
359 | - | ||
360 | - | ||
361 | - return ( | ||
362 | - <Layout> | ||
363 | - <Sider | ||
364 | - trigger={null} | ||
365 | - collapsible | ||
366 | - collapsed={!collapsed} | ||
367 | - onCollapse={onCollapse} | ||
368 | - style={{ height: '100vh' }}> | ||
369 | - <img | ||
370 | - className="mathbank" | ||
371 | - src={mathbank} | ||
372 | - alt="mathbank" | ||
373 | - onClick={() => window.location.reload()} | ||
374 | - style={{ | ||
375 | - width: 'auto', | ||
376 | - height: '54px', | ||
377 | - marginLeft: '22px', | ||
378 | - marginTop: '10px', | ||
379 | - cursor: 'pointer', | ||
380 | - }} | ||
381 | - /> | ||
382 | - <Menu | ||
383 | - | ||
384 | - theme="dark" | ||
385 | - defaultSelectedKeys={['1']} | ||
386 | - mode="inline" | ||
387 | - style={{ fontSize: '18px' }}> | ||
388 | - <SubMenu | ||
389 | - key="sub1" | ||
390 | - icon={<UserOutlined style={{ fontSize: '18px' }} />} | ||
391 | - title="User's Info" | ||
392 | - style={{ backgroundColor: 'rgb(0, 21, 41)' }}> | ||
393 | - <Menu.Item | ||
394 | - key="1" | ||
395 | - onClick="none" | ||
396 | - style={{ | ||
397 | - width: '200px', | ||
398 | - height: '100%', | ||
399 | - paddingLeft: '0px', | ||
400 | - background: 'rgb(0, 21, 41)', | ||
401 | - textAlign: 'center', | ||
402 | - }}> | ||
403 | - {userId}님 환영합니다. | ||
404 | - </Menu.Item> | ||
405 | - </SubMenu> | ||
406 | - <SubMenu | ||
407 | - key="sub2" | ||
408 | - icon={<ReadOutlined style={{ fontsize: '15px'}}/>} | ||
409 | - title="MathCha" | ||
410 | - style={{ | ||
411 | - backgroundColor: 'rgb(0, 21, 41)' | ||
412 | - }}> | ||
413 | - <Menu.Item | ||
414 | - key="1" | ||
415 | - style={{ | ||
416 | - width: '200px', | ||
417 | - height: '100%', | ||
418 | - paddingLeft: '0px', | ||
419 | - background: 'rgb(0, 21, 41)', | ||
420 | - textAlign: 'center', | ||
421 | - }}><a href="http://mathcha.io" target="_blank">MathCha 다운로드</a> | ||
422 | - </Menu.Item> | ||
423 | - <Menu.Item | ||
424 | - key="2" | ||
425 | - style={{ | ||
426 | - width: '200px', | ||
427 | - height: '100%', | ||
428 | - paddingLeft: '0px', | ||
429 | - background: 'rgb(0, 21, 41)', | ||
430 | - textAlign: 'center', | ||
431 | - }}><a href="https://m.blog.naver.com/PostView.nhn?blogId=wool613&logNo=221511340406&proxyReferer=https:%2F%2Fwww.google.com%2F" target="_blank">tikz 간단 설명</a> | ||
432 | - </Menu.Item> | ||
433 | - <Menu.Item | ||
434 | - key="3" | ||
435 | - style={{ | ||
436 | - width: '200px', | ||
437 | - height: '100%', | ||
438 | - paddingLeft: '0px', | ||
439 | - background: 'rgb(0, 21, 41)', | ||
440 | - textAlign: 'center', | ||
441 | - }}><a href="https://www.bu.edu/math/files/2013/08/tikzpgfmanual.pdf" target="_blank">tikz 상세 메뉴얼</a> | ||
442 | - </Menu.Item> | ||
443 | - </SubMenu> | ||
444 | - </Menu> | ||
445 | - </Sider> | ||
446 | - <Layout className="site-layout"> | ||
447 | - <Header className="site-layout-background" style={{ padding: 0 }}> | ||
448 | - <MenuOutlined | ||
449 | - style={{ marginLeft: '13px' }} | ||
450 | - onClick={(collapsed, toggle)}></MenuOutlined> | ||
451 | - | ||
452 | - <Button className="logout" type="default" onClick={(e)=>{ | ||
453 | - sessionStorage.removeItem('id'); | ||
454 | - sessionStorage.removeItem('isAuth'); | ||
455 | - history.push('/'); | ||
456 | - | ||
457 | - }}> | ||
458 | - 로그아웃 | ||
459 | - </Button> | ||
460 | - </Header> | ||
461 | - <Content> | ||
462 | - <div> | ||
463 | - <div style={{ marginBottom: 16 }}> | ||
464 | - <span style={{ marginLeft: 8 }}> | ||
465 | - {hasSelected ? `Selected ${selectedRowKeys.length} items` : ''} | ||
466 | - </span> | ||
467 | - </div> | ||
468 | - <Button | ||
469 | - style={{ display: 'inline-block', top: '0.5vh', left: '8vw' }} | ||
470 | - type="primary" | ||
471 | - shape="round" | ||
472 | - icon={<UploadOutlined />} | ||
473 | - onClick={onHtml}> | ||
474 | - HTML 업로드 | ||
475 | - </Button> | ||
476 | - <Button | ||
477 | - style={{ display: 'inline-block', top: '0.5vh', left: '8.5vw' }} | ||
478 | - type="primary" | ||
479 | - shape="round" | ||
480 | - icon={<UploadOutlined />} | ||
481 | - onClick={onMathcha}> | ||
482 | - Mathcha 업로드 | ||
483 | - </Button> | ||
484 | - <Button | ||
485 | - style={{ display: 'inline-block', top: '0.5vh', left: '9vw' }} | ||
486 | - type="primary" | ||
487 | - shape="round" | ||
488 | - icon={<UploadOutlined />} | ||
489 | - onClick={onTikz}> | ||
490 | - TikZ 업로드 | ||
491 | - </Button> | ||
492 | - <Button | ||
493 | - style={{ | ||
494 | - display: 'inline-block', | ||
495 | - top: '0.5vh', | ||
496 | - left: '9.5vw', | ||
497 | - }} | ||
498 | - type="dashed" | ||
499 | - shape="round" | ||
500 | - icon={<DeleteOutlined />} | ||
501 | - onClick={(e)=>{ | ||
502 | - console.log(selectItems); | ||
503 | - if(selectItems.length>0){ | ||
504 | - | ||
505 | - removeItemsShowModal(); | ||
506 | - }else{ | ||
507 | - message.info("삭제할 데이터를 선택해 주세요."); | ||
508 | - } | ||
509 | - }} | ||
510 | - danger> | ||
511 | - 선택 삭제 | ||
512 | - </Button> | ||
513 | - | ||
514 | - <Button | ||
515 | - style={{ | ||
516 | - display: 'inline-block', | ||
517 | - top: '0.5vh', | ||
518 | - left: '50vw', | ||
519 | - }}className="orderWhat" type="default" onClick={onOrderWhat}> | ||
520 | - {orderWhatKor} | ||
521 | - </Button> | ||
522 | - <Button | ||
523 | - style={{ | ||
524 | - display: 'inline-block', | ||
525 | - top: '0.5vh', | ||
526 | - left: '50.2vw', | ||
527 | - }}className="orderKind" type="default" onClick={onOrderKind}> | ||
528 | - {orderKindKor} | ||
529 | - </Button> | ||
530 | - <Table | ||
531 | - rowSelection={rowSelection} | ||
532 | - pagination={ | ||
533 | - { | ||
534 | - total: total, | ||
535 | - current:currentPage, | ||
536 | - pageSize:pageSize, | ||
537 | - orderWhat:orderWhat , | ||
538 | - orderKind:orderKind, | ||
539 | - onChange:async (page,pageSize)=>{ | ||
540 | - console.log(page,pageSize); | ||
541 | - setCurrentPage(page); | ||
542 | - const user = sessionStorage.getItem('id'); | ||
543 | - const result = await fetchGetData(user,pageSize,page,orderWhat,orderKind); | ||
544 | - console.log(pageSize); | ||
545 | - if(result){ | ||
546 | - console.log(result.tikzs); | ||
547 | - setData(result.tikzs.map(x=>Object.assign({},x,{key: x.id}))); | ||
548 | - setTotal(result.total); | ||
549 | - setStatus(null); | ||
550 | - } | ||
551 | - } | ||
552 | - } | ||
553 | - } | ||
554 | - columns={columns} | ||
555 | - dataSource={data} | ||
556 | - style={{ width: '80vw', marginTop: '1.5vh', marginLeft: '8vw' }} | ||
557 | - /> | ||
558 | - <Modal | ||
559 | - title="미리보기" | ||
560 | - visible={visible} | ||
561 | - centered | ||
562 | - width="400px" | ||
563 | - height="400px" | ||
564 | - onOk={handleOk} | ||
565 | - onCancel={handleCancel}> | ||
566 | - { | ||
567 | - selectItem && <iframe scrolling='no' frameBorder="0" style={{overflow:'hidden' , overflowX:'hidden', overflowY:'hidden' , position:'relative', top:'0px',left:'0px', right:'0px', bottom:'0px' ,height:'300px', width:'350px' }} className="iframe" src={`${host}/htmlPreview/${selectItem.htmlFileName}`}/> | ||
568 | - } | ||
569 | - </Modal> | ||
570 | - <Modal | ||
571 | - title="다운로드" | ||
572 | - /> | ||
573 | - <Modal | ||
574 | - title="삭제하시겠습니까?" | ||
575 | - visible={removeVisible} | ||
576 | - onOk={removeHandleOk} | ||
577 | - onCancel={removeHandleCancel} | ||
578 | - okText="확인" | ||
579 | - cancelText="취소" | ||
580 | - > | ||
581 | - <p>확인을 클릭하시면 삭제됩니다!</p> | ||
582 | - </Modal> | ||
583 | - <Html visible={html} onCancel={onCancelHtml} callback={callback}></Html> | ||
584 | - <Mathcha visible={mathcha} onCancel={onCancelMathCha} callback={callback}></Mathcha> | ||
585 | - <Tikz visible={tikz} onLeave={onLeave} callback={callback} selectItem={selectItem} mode={tikzmode}></Tikz> | ||
586 | - </div> | ||
587 | - </Content> | ||
588 | - </Layout> | ||
589 | - </Layout> | ||
590 | - ); | ||
591 | -}; | ||
592 | - | ||
593 | -export default withRouter(Home); |
minsung/src/Container/Html.js
deleted
100644 → 0
1 | -import React, { useState, useEffect } from 'react'; | ||
2 | -import { Modal, Upload, message, Form, InputNumber, Button , Select ,Row, Col} from 'antd'; | ||
3 | -import { InboxOutlined, LockOutlined, SaveTwoTone } from '@ant-design/icons'; | ||
4 | -import { saveFileAndQno } from 'lib/api/html'; | ||
5 | -import { checkQno } from '../lib/api/html'; | ||
6 | - | ||
7 | -const { Option} = Select; | ||
8 | -//파일 업로드 | ||
9 | -//업로드 폼에서의 로직 | ||
10 | - | ||
11 | -const fetchSaveData = async (data) => { | ||
12 | - try{ | ||
13 | - console.log(data); | ||
14 | - const result = await saveFileAndQno(data); | ||
15 | - if(result.status===200){ | ||
16 | - return result.data; | ||
17 | - } | ||
18 | - }catch(e){ | ||
19 | - console.log(e); | ||
20 | - message.warn(e.message); | ||
21 | - } | ||
22 | -} | ||
23 | - | ||
24 | -const fetchCheckQno = async(qno) => { | ||
25 | - try{ | ||
26 | - const result = await checkQno(qno); | ||
27 | - if(result.status===200){ | ||
28 | - console.log(result); | ||
29 | - message.info("사용 가능한 문항 번호 입니다."); | ||
30 | - return true; | ||
31 | - }else{ | ||
32 | - message.info("존재 하지 않는 문항 번호 입니다."); | ||
33 | - return false; | ||
34 | - } | ||
35 | - }catch(e){ | ||
36 | - console.log(e); | ||
37 | - message.info("존재 하지 않는 문항 번호 입니다."); | ||
38 | - return false; | ||
39 | - } | ||
40 | -} | ||
41 | - | ||
42 | -const Html = ({ visible, onCancel, callback }) => { | ||
43 | - const [fields,setFields] =useState([]); | ||
44 | - const [qno, setQno] = useState(null); | ||
45 | - const [upload,setUpload]=useState(false); | ||
46 | - const [fileList, setFileList]=useState([]); | ||
47 | - const [qnoCheck,setQnoCheck] =useState(false); | ||
48 | - | ||
49 | - | ||
50 | - const changeNumber = (value) => { | ||
51 | - setQno(value); | ||
52 | - setFields([...fields, {name:['qno'],value:value}]); | ||
53 | - }; | ||
54 | - | ||
55 | - | ||
56 | - useEffect(()=>{ | ||
57 | - if(!visible){ | ||
58 | - let initFields = [ | ||
59 | - {name:['qno'],value:null}, | ||
60 | - {name:['typeSol'],value:null}, | ||
61 | - {name:['typeQue'],value:null}, | ||
62 | - {name:['creator'],value:null}, | ||
63 | - ]; | ||
64 | - setQno(null); | ||
65 | - setFields(initFields); | ||
66 | - setFileList([]); | ||
67 | - } | ||
68 | - },[visible]); | ||
69 | - | ||
70 | - const props = { | ||
71 | - multiple:false, | ||
72 | - //data: { qno: qno }, | ||
73 | - accept:'.html', | ||
74 | - onRemove: file => { | ||
75 | - const index = fileList.indexOf(file); | ||
76 | - const newFileList = fileList.slice(); | ||
77 | - newFileList.splice(index, 1); | ||
78 | - return { | ||
79 | - fileList: newFileList, | ||
80 | - }; | ||
81 | - }, | ||
82 | - | ||
83 | - beforeUpload: file => { | ||
84 | - console.log(file); | ||
85 | - if(file.name.indexOf('.html')>0) | ||
86 | - { | ||
87 | - setFileList([file]); | ||
88 | - }else { | ||
89 | - setFileList([]); | ||
90 | - message.info("Html 형식의 파일이 아닙니다."); | ||
91 | - } | ||
92 | - return false; | ||
93 | - | ||
94 | - }, | ||
95 | - }; | ||
96 | - | ||
97 | - const onOk = () => { | ||
98 | - setUpload(true) | ||
99 | - }; | ||
100 | - | ||
101 | - | ||
102 | - const normFile = e => { | ||
103 | - console.log('Upload event:', e); | ||
104 | - if (Array.isArray(e)) { | ||
105 | - return e; | ||
106 | - } | ||
107 | - return e && e.fileList; | ||
108 | - }; | ||
109 | - | ||
110 | - const onClickQno = async(e)=>{ | ||
111 | - e.preventDefault(); | ||
112 | - //번호가 호출 성공시 setQnoCheck(true); | ||
113 | - if(qno){ | ||
114 | - const _checkQno= await fetchCheckQno(qno); | ||
115 | - setQnoCheck(_checkQno); | ||
116 | - } | ||
117 | - }; | ||
118 | - | ||
119 | - const onFinish = async values => { | ||
120 | - console.log(qnoCheck); | ||
121 | - if(!qnoCheck){ | ||
122 | - message.warning("문제 번호를 확인해 주세요.") | ||
123 | - return; | ||
124 | - }else{ | ||
125 | - const creator = sessionStorage.getItem('id'); | ||
126 | - console.log('Received values of form: ', values); | ||
127 | - const formData = new FormData(); | ||
128 | - formData.append('qno', values.qno); | ||
129 | - formData.append('typeSol', values.typeSol); | ||
130 | - formData.append('typeQue', values.typeQue); | ||
131 | - formData.append('html', values.html[0]); | ||
132 | - formData.append('creator', creator); | ||
133 | - | ||
134 | - const result = await fetchSaveData(formData); | ||
135 | - console.log(result); | ||
136 | - if(result){ | ||
137 | - message.info(result.message); | ||
138 | - let initFields = [ | ||
139 | - {name:['qno'],value:null}, | ||
140 | - {name:['typeSol'],value:null}, | ||
141 | - {name:['typeQue'],value:null}, | ||
142 | - {name:['creator'],value:null}, | ||
143 | - ]; | ||
144 | - setQno(null); | ||
145 | - setFields(initFields); | ||
146 | - setFileList([]); | ||
147 | - onCancel(); | ||
148 | - callback({status:'SAVE_OK'}); | ||
149 | - }else{ | ||
150 | - callback({status:'SAVE_FAIL'}) | ||
151 | - } | ||
152 | - } | ||
153 | - }; | ||
154 | - | ||
155 | - const onChangeTypeSol = (value) => { | ||
156 | - console.log(value); | ||
157 | - setFields([...fields, {name:['typeSol'],value:value}]); | ||
158 | - } | ||
159 | - | ||
160 | - const onChangeTypeQue = (value) => { | ||
161 | - console.log(value); | ||
162 | - setFields([...fields, {name:['typeQue'],value:value}]) | ||
163 | - } | ||
164 | - | ||
165 | - | ||
166 | - | ||
167 | - const formItemLayout = { | ||
168 | - labelCol: { span: 6 }, | ||
169 | - wrapperCol: { span: 14 }, | ||
170 | - }; | ||
171 | - | ||
172 | - return ( | ||
173 | - <Modal | ||
174 | - placement={'bottom'} | ||
175 | - closable={true} | ||
176 | - height={'75%'} | ||
177 | - visible={visible} | ||
178 | - okText={'저장'} | ||
179 | - cancelText={'이전'} | ||
180 | - onCancel={onCancel} | ||
181 | - footer={null} | ||
182 | - > | ||
183 | - <Form name="validate_other" | ||
184 | - {...formItemLayout} | ||
185 | - onFinish={onFinish} | ||
186 | - fields={[{name:['html'],value:fileList},...fields]} | ||
187 | - > | ||
188 | - <Form.Item | ||
189 | - name="qno" | ||
190 | - label="문제 번호" | ||
191 | - rules={[ | ||
192 | - { | ||
193 | - required: true, | ||
194 | - message: '저장할 html의 문항번호를 입력해 주세요.', | ||
195 | - }, | ||
196 | - ]}> | ||
197 | - <Row> | ||
198 | - <Col> | ||
199 | - <InputNumber | ||
200 | - min={0} | ||
201 | - max={10000} | ||
202 | - value={qno} | ||
203 | - onChange={changeNumber}> | ||
204 | - </InputNumber> | ||
205 | - </Col> | ||
206 | - <Col> | ||
207 | - <Button onClick={onClickQno}>번호 확인</Button> | ||
208 | - </Col> | ||
209 | - </Row> | ||
210 | - </Form.Item> | ||
211 | - <Form.Item | ||
212 | - name="typeSol" | ||
213 | - label="문제 타입" | ||
214 | - rules={[ | ||
215 | - { | ||
216 | - required: true, | ||
217 | - message: '저장할 html의 문제 타입을 선택해 주세요.', | ||
218 | - }, | ||
219 | - ]}> | ||
220 | - <Select onChange={onChangeTypeSol}> | ||
221 | - <Option value="오지선다형">오지선다형</Option> | ||
222 | - <Option value="단답형">단답형</Option> | ||
223 | - <Option value="계산식">계산식</Option> | ||
224 | - </Select> | ||
225 | - </Form.Item> | ||
226 | - <Form.Item | ||
227 | - name="typeQue" | ||
228 | - label="문제/풀이 구분" | ||
229 | - rules={[ | ||
230 | - { | ||
231 | - required: true, | ||
232 | - message: '저장할 html의 문제/풀이 구분을 선택해 주세요.', | ||
233 | - }, | ||
234 | - ]}> | ||
235 | - <Select onChange={onChangeTypeQue}> | ||
236 | - <Option value="문제">문제</Option> | ||
237 | - <Option value="풀이">풀이</Option> | ||
238 | - </Select> | ||
239 | - </Form.Item> | ||
240 | - <Form.Item label="파일 업로드"> | ||
241 | - <Form.Item | ||
242 | - name="html" | ||
243 | - valuePropName="fileList" | ||
244 | - getValueFromEvent={normFile} | ||
245 | - | ||
246 | - noStyle | ||
247 | - rules={[ | ||
248 | - { | ||
249 | - required: true, | ||
250 | - message: '파일을 드래그하거나 선택해 주세요.', | ||
251 | - }, | ||
252 | - ]}> | ||
253 | - <Upload.Dragger name="files" {...props} > | ||
254 | - <p className="ant-upload-drag-icon"> | ||
255 | - <InboxOutlined /> | ||
256 | - </p> | ||
257 | - <p className="ant-upload-text">Click or drag file to this area to upload</p> | ||
258 | - <p className="ant-upload-hint">Support for a single or bulk upload.</p> | ||
259 | - </Upload.Dragger> | ||
260 | - </Form.Item> | ||
261 | - </Form.Item> | ||
262 | - | ||
263 | - <Form.Item style={{alignContent:'middle'}} wrapperCol={{ span: 12, offset: 6 }}> | ||
264 | - <Button type="primary" htmlType="submit"> | ||
265 | - 저장 | ||
266 | - </Button> | ||
267 | - </Form.Item> | ||
268 | - </Form> | ||
269 | - | ||
270 | - </Modal> | ||
271 | - ); | ||
272 | -}; | ||
273 | - | ||
274 | -export default Html; |
minsung/src/Container/Login.js
deleted
100644 → 0
1 | -import React,{useState} from 'react'; | ||
2 | -import LoginForm from '../component/LoginForm'; | ||
3 | -import { getLoginInfo } from '../lib/api/login'; | ||
4 | -import {Redirect, withRouter} from "react-router-dom"; | ||
5 | - | ||
6 | -const fetchLogInfo= async(data) =>{ | ||
7 | - try{ | ||
8 | - const result = await getLoginInfo(data); | ||
9 | - if(result.status ===200){ | ||
10 | - console.log("서버 데이터와 일치: "+ result.data ); // result의 반환값 확인 | ||
11 | - return true; | ||
12 | - } | ||
13 | - } catch(e){ | ||
14 | - console.log(e); | ||
15 | - alert("id와 비밀번호를 확인해주세요!"); | ||
16 | - return false; | ||
17 | - } | ||
18 | -} | ||
19 | - | ||
20 | -const Login = () => { | ||
21 | - | ||
22 | - const [authenticated,setAuthenticated] = useState(false); | ||
23 | - const onFinish = async (values)=> { | ||
24 | - console.log('Received values of form: ', values); | ||
25 | - const isAuth = await fetchLogInfo(values); | ||
26 | - sessionStorage.setItem("isAuth", isAuth); //세션 스토리지 저장 | ||
27 | - sessionStorage.setItem("id",values.userid); | ||
28 | - | ||
29 | - setAuthenticated(isAuth); | ||
30 | - } | ||
31 | - if(authenticated){ | ||
32 | - // history.push('/Home'); | ||
33 | - return <Redirect to="/Home"/> | ||
34 | - }else{ | ||
35 | - return <LoginForm onFinish={onFinish} > | ||
36 | - </LoginForm> | ||
37 | - } | ||
38 | -}; | ||
39 | - | ||
40 | -export default withRouter(Login); |
minsung/src/Container/Tikz.css
deleted
100644 → 0
1 | -.trigger { | ||
2 | - font-size: 18px; | ||
3 | - line-height: 64px; | ||
4 | - padding: 0 24px; | ||
5 | - cursor: pointer; | ||
6 | - transition: color 0.3s; | ||
7 | -} | ||
8 | - | ||
9 | -.trigger:hover { | ||
10 | - color: #1890ff; | ||
11 | -} | ||
12 | - | ||
13 | -.logo { | ||
14 | - height: 32px; | ||
15 | - background: rgba(255, 255, 255, 0.2); | ||
16 | - margin: 16px; | ||
17 | -} | ||
18 | - | ||
19 | -.site-layout .site-layout-background { | ||
20 | - background: #fff; | ||
21 | -} | ||
22 | - | ||
23 | - | ||
24 | -div.demo-editor.rdw-editor-main { | ||
25 | - border: 1px solid #f1f1f1; | ||
26 | - height: 65vh; | ||
27 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
minsung/src/Container/Tikz.js
deleted
100644 → 0
1 | -import React, { useState, useEffect, useCallback } from 'react'; | ||
2 | -import { Drawer, message } from 'antd'; | ||
3 | -import { UploadOutlined, RetweetOutlined } from '@ant-design/icons'; | ||
4 | -import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'; | ||
5 | -import { getTexToSvg, checkQno, saveFileAndQno } from '../lib/api/tikz'; // Request api | ||
6 | -import TikzForm from '../component/tikzForm'; | ||
7 | - | ||
8 | - | ||
9 | - | ||
10 | -const fetchTexToSvg = async (data) => { | ||
11 | - // getTexToSvg api를 이용하기 위한 const | ||
12 | - try { | ||
13 | - const result = await getTexToSvg({ tex: data }); | ||
14 | - if (result.status === 200) { | ||
15 | - console.log(result.status); | ||
16 | - console.log(result.data); | ||
17 | - return result.data; | ||
18 | - } | ||
19 | - } catch (e) { | ||
20 | - console.log(e); | ||
21 | - //Notification. 추가해서 변환상태 알려주기 | ||
22 | - return null; | ||
23 | - } | ||
24 | -}; | ||
25 | - | ||
26 | - | ||
27 | -const fetchSaveData = async (data) => { | ||
28 | - try{ | ||
29 | - const result = await saveFileAndQno(data); | ||
30 | - console.log(result); | ||
31 | - if(result.status===200){ | ||
32 | - return result.data; | ||
33 | - } | ||
34 | - }catch(e){ | ||
35 | - console.log(e); | ||
36 | - message.warning(e.message); | ||
37 | - } | ||
38 | - } | ||
39 | - | ||
40 | -/* 문항번호 체크 */ | ||
41 | -const fetchCheckQno = async(qno) => { | ||
42 | - try{ | ||
43 | - const result = await checkQno(qno); | ||
44 | - if(result.status===200){ | ||
45 | - console.log(result); | ||
46 | - message.info("사용 가능한 문항 번호 입니다."); | ||
47 | - return true; | ||
48 | - }else{ | ||
49 | - message.info("존재 하지 않는 문항 번호 입니다."); | ||
50 | - return false; | ||
51 | - } | ||
52 | - }catch(e){ | ||
53 | - console.log(e); | ||
54 | - message.info("존재 하지 않는 문항 번호 입니다."); | ||
55 | - return false; | ||
56 | - } | ||
57 | - } | ||
58 | - | ||
59 | - | ||
60 | - const _tikzcode= "% 예시 (x축, y축, 반지름이 1cm인 원의 그림) %\n\ | ||
61 | -% 오른쪽의 변환 버튼을 눌러보세요! %\n\n\ | ||
62 | - \\documentclass{article}\n\ | ||
63 | - \\usepackage{tikz}\n\ | ||
64 | - \\begin{document}\n\n\n\ | ||
65 | - \\begin{tikzpicture}\n\ | ||
66 | - \\draw (-1.5,0) -- (1.5,0);\n\ | ||
67 | - \\draw (0,-1.5) -- (0,1.5);\n\ | ||
68 | - \\draw (0,0) circle (1cm);\n\ | ||
69 | - \\end{tikzpicture}\n\n\n\ | ||
70 | - \\end{document}"; | ||
71 | - | ||
72 | - | ||
73 | - const Tikz = ({ onLeave, visible, callback, selectItem, mode }) => { | ||
74 | - const [fields,setFields] =useState([]); | ||
75 | - const [qno, setQno] = useState(null); | ||
76 | - const [number, setNumber] = useState(null); //문항번호를 저장하는 state | ||
77 | - const [inputText, setinputText] = useState(_tikzcode); //tikz code를 저장하는 state | ||
78 | - const [svg, setSvg] = useState(null); //변환된 svg 데이터를 저장하는 state | ||
79 | - const [qnoCheck,setQnoCheck] = useState(false); | ||
80 | - const [tikzcode,setTikzCode] = useState(_tikzcode); | ||
81 | - //svg | ||
82 | - //onclickevent : Tikz 변환하기 Button의 onClick Event | ||
83 | - //onChangeTikz : TextArea 컴포넌트의 onChange event | ||
84 | - //onFinish : Form data를 제출하기 위한 event | ||
85 | - | ||
86 | - useEffect(()=> { | ||
87 | - if(mode==='preview'&&selectItem){ | ||
88 | - console.log(selectItem); | ||
89 | - | ||
90 | - let initFields = [ | ||
91 | - {name:['qno'],value:selectItem.qno}, | ||
92 | - {name:['typeSol'],value:selectItem.typeSol}, | ||
93 | - {name:['typeQue'],value:selectItem.typeQue}, | ||
94 | - {name:['creator'],value:selectItem.creator}, | ||
95 | - | ||
96 | - ]; | ||
97 | - setQno(selectItem.qno); | ||
98 | - setTikzCode(selectItem.tex); | ||
99 | - setFields(initFields); | ||
100 | - setSvg(null); | ||
101 | - } | ||
102 | - },[mode, selectItem]); | ||
103 | - | ||
104 | - useEffect(()=>{ | ||
105 | - if(mode === 'new'){ | ||
106 | - let initFields = [ | ||
107 | - {name:['qno'],value:null}, | ||
108 | - {name:['typeSol'],value:null}, | ||
109 | - {name:['typeQue'],value:null}, | ||
110 | - {name:['creator'],value:null}, | ||
111 | - ]; | ||
112 | - setQno(null); | ||
113 | - setTikzCode(_tikzcode); | ||
114 | - setFields(initFields); | ||
115 | - setSvg(null); | ||
116 | - } | ||
117 | - },[mode]); | ||
118 | - | ||
119 | - const onClickEvent = (e) => { | ||
120 | - if(inputText){ | ||
121 | - callbackSVG(inputText); | ||
122 | - } | ||
123 | - | ||
124 | - if (inputText === null) { | ||
125 | - console.log(inputText); | ||
126 | - alert( | ||
127 | - //data에 null이 입력된 경우 | ||
128 | - 'Code 값을 입력해주세요!' | ||
129 | - ); | ||
130 | - } else { | ||
131 | - console.log(inputText); | ||
132 | - callbackSVG(inputText); | ||
133 | - } | ||
134 | - }; | ||
135 | - const onChangeQno = (value) => { | ||
136 | - console.log(value); | ||
137 | - setQno(value); | ||
138 | - setFields([...fields, {name:['qno'],value:value}]); | ||
139 | - }; | ||
140 | -/* | ||
141 | - useEffect(()=>{ | ||
142 | - if(!visible ){ | ||
143 | - let initFields = [ | ||
144 | - {name:['qno'],value:null}, | ||
145 | - {name:['typeSol'],value:null}, | ||
146 | - {name:['typeQue'],value:null}, | ||
147 | - {name:['creator'],value:null}, | ||
148 | - ]; | ||
149 | - setQno(null); | ||
150 | - setTikzCode(tikzcode); | ||
151 | - setFields(initFields); | ||
152 | - } | ||
153 | - },[visible,mode]); | ||
154 | -*/ | ||
155 | - const callbackSVG = useCallback(async () => { | ||
156 | - const result = await fetchTexToSvg(inputText); | ||
157 | - setSvg(result); //api로 받아온 result를 svg state에 저장 | ||
158 | - }, [inputText]); | ||
159 | - | ||
160 | - const onChangeTikz = (e) => { | ||
161 | - if (e) { | ||
162 | - setinputText(e.target.value); | ||
163 | - } else setinputText(null); | ||
164 | - }; | ||
165 | - | ||
166 | - const onSaveEvent = () => { | ||
167 | - try { | ||
168 | - //서버에 저장이 확인 됐을때 200, 500(오류) http status | ||
169 | - const result = alert('전송이 성공적으로 완료됐습니다.'); | ||
170 | - } catch (e) { | ||
171 | - //서버에 저장 오류가 났을때 | ||
172 | - console.log(e); | ||
173 | - alert(e); | ||
174 | - } | ||
175 | - }; | ||
176 | - const onClickQno = async(e)=>{ | ||
177 | - e.preventDefault(); | ||
178 | - //번호가 호출 성공시 setQnoCheck(true); | ||
179 | - if(qno){ | ||
180 | - const _checkQno= await fetchCheckQno(qno); | ||
181 | - setQnoCheck(_checkQno); | ||
182 | - } | ||
183 | - }; | ||
184 | - | ||
185 | - | ||
186 | - const onFinish = async(values) => { | ||
187 | - console.log(values); | ||
188 | - console.log(qnoCheck); | ||
189 | - if(!qnoCheck){ | ||
190 | - message.warning("문제 번호를 확인해 주세요.") | ||
191 | - return; | ||
192 | - }else{ | ||
193 | - const creator = sessionStorage.getItem('id'); | ||
194 | - console.log('Received values of form: ', values); | ||
195 | - const result = await fetchSaveData({...values, creator}); | ||
196 | - console.log(result); | ||
197 | - if(result){ | ||
198 | - message.info(result.message); | ||
199 | - let initFields = [ | ||
200 | - {name:['qno'],value:null}, | ||
201 | - {name:['typeSol'],value:null}, | ||
202 | - {name:['typeQue'],value:null}, | ||
203 | - {name:['creator'],value:null}, | ||
204 | - ]; | ||
205 | - setFields(initFields); | ||
206 | - onLeave(); | ||
207 | - callback({status:'SAVE_OK'}); | ||
208 | - setQno(null); | ||
209 | - }else{ | ||
210 | - callback({status:'SAVE_FAIL'}) | ||
211 | - } | ||
212 | - } | ||
213 | - }; | ||
214 | - | ||
215 | - | ||
216 | - const onChangeTypeSol = (value) => { | ||
217 | - console.log(value); | ||
218 | - setFields([...fields, {name:['typeSol'],value:value}]); | ||
219 | - } | ||
220 | - | ||
221 | - const onChangeTypeQue = (value) => { | ||
222 | - console.log(value); | ||
223 | - setFields([...fields, {name:['typeQue'],value:value}]) | ||
224 | - } | ||
225 | - | ||
226 | - return ( | ||
227 | - <Drawer | ||
228 | - title={'Tikz Editor'} | ||
229 | - placement={'bottom'} | ||
230 | - closable={true} | ||
231 | - height={'90vh'} | ||
232 | - onClose={onLeave} | ||
233 | - visible={visible}> | ||
234 | - <TikzForm | ||
235 | - svg={svg} | ||
236 | - onClickEvent={onClickEvent} | ||
237 | - onChangeTikz={onChangeTikz} | ||
238 | - onSaveEvent={onSaveEvent} | ||
239 | - onFinish={onFinish} | ||
240 | - tikzcode={tikzcode} | ||
241 | - fields={fields} | ||
242 | - onClickQno={onClickQno} | ||
243 | - onChangeQno={onChangeQno} | ||
244 | - onChangeTypeSol={onChangeTypeSol} | ||
245 | - onChangeTypeQue={onChangeTypeQue} | ||
246 | - qno={qno}> | ||
247 | - </TikzForm> | ||
248 | - </Drawer> | ||
249 | - ); | ||
250 | -}; | ||
251 | - | ||
252 | -export default Tikz; | ||
253 | - | ||
254 | -//<Transform value={tikzHtml}></Transform> |
minsung/src/Container/index.js
deleted
100644 → 0
minsung/src/component/DropMenu.js
deleted
100644 → 0
1 | -import React from 'react'; | ||
2 | -import { Menu, Dropdown, Button } from 'antd'; | ||
3 | -//import Scroll from '../component/Slider'; | ||
4 | -// 화살표 함수에서 {} 가 들어가는 경우에는 처리해야 되는 루틴이 있을때 return 값만 있을때는 () or 생략도 가능하다. | ||
5 | -// | ||
6 | - | ||
7 | -//기본적인 도형들을 그리는 도형상수 | ||
8 | -const draw = () => ( | ||
9 | - <Menu> | ||
10 | - <Menu.Item> | ||
11 | - <button onclick="">Triangle</button> | ||
12 | - </Menu.Item> | ||
13 | - <Menu.Item> | ||
14 | - <a | ||
15 | - target="_blank" | ||
16 | - rel="noopener noreferrer" | ||
17 | - href="http://www.taobao.com/"> | ||
18 | - Rectangle | ||
19 | - </a> | ||
20 | - </Menu.Item> | ||
21 | - <Menu.Item> | ||
22 | - <a target="_blank" rel="noopener noreferrer" href="http://www.tmall.com/"> | ||
23 | - pentagon | ||
24 | - </a> | ||
25 | - </Menu.Item> | ||
26 | - <Menu.Item danger>도형 디자인</Menu.Item> | ||
27 | - </Menu> | ||
28 | -); | ||
29 | - | ||
30 | -//기본적인 그래프를 그리는 그래프 상수 | ||
31 | -const graph = () => ( | ||
32 | - <Menu> | ||
33 | - <Menu.Item> | ||
34 | - <a | ||
35 | - target="_blank" | ||
36 | - rel="noopener noreferrer" | ||
37 | - href="http://www.alipay.com/"> | ||
38 | - 2차함수 | ||
39 | - </a> | ||
40 | - </Menu.Item> | ||
41 | - <Menu.Item> | ||
42 | - <a | ||
43 | - target="_blank" | ||
44 | - rel="noopener noreferrer" | ||
45 | - href="http://www.taobao.com/"> | ||
46 | - 3차함수 | ||
47 | - </a> | ||
48 | - </Menu.Item> | ||
49 | - | ||
50 | - <Menu.Item danger>함수 디자인</Menu.Item> | ||
51 | - </Menu> | ||
52 | -); | ||
53 | - | ||
54 | -// x축 y축을 그리게 만드는 상수 | ||
55 | -const grid = () => ( | ||
56 | - <Menu> | ||
57 | - <Menu.Item> | ||
58 | - <a | ||
59 | - target="_blank" | ||
60 | - rel="noopener noreferrer" | ||
61 | - href="http://www.alipay.com/"> | ||
62 | - 2차원 | ||
63 | - </a> | ||
64 | - </Menu.Item> | ||
65 | - <Menu.Item> | ||
66 | - <a | ||
67 | - target="_blank" | ||
68 | - rel="noopener noreferrer" | ||
69 | - href="http://www.taobao.com/"> | ||
70 | - 3차원 | ||
71 | - </a> | ||
72 | - </Menu.Item> | ||
73 | - <Menu.Item> | ||
74 | - <a target="_blank" rel="noopener noreferrer" href="http://www.tmall.com/"> | ||
75 | - 3rd menu item | ||
76 | - </a> | ||
77 | - </Menu.Item> | ||
78 | - <Menu.Item danger>좌표축 디자인</Menu.Item> | ||
79 | - </Menu> | ||
80 | -); | ||
81 | - | ||
82 | -// 수학 공식들을 선택하는 상수 | ||
83 | -const MathFunction = () => ( | ||
84 | - <Menu> | ||
85 | - <Menu.Item> | ||
86 | - <a | ||
87 | - target="_blank" | ||
88 | - rel="noopener noreferrer" | ||
89 | - href="http://www.alipay.com/"></a> | ||
90 | - </Menu.Item> | ||
91 | - <Menu.Item> | ||
92 | - <a | ||
93 | - target="_blank" | ||
94 | - rel="noopener noreferrer" | ||
95 | - href="http://www.taobao.com/"> | ||
96 | - 2nd menu item | ||
97 | - </a> | ||
98 | - </Menu.Item> | ||
99 | - <Menu.Item> | ||
100 | - <a target="_blank" rel="noopener noreferrer" href="http://www.tmall.com/"> | ||
101 | - 3rd menu item | ||
102 | - </a> | ||
103 | - </Menu.Item> | ||
104 | - <Menu.Item danger>a danger item</Menu.Item> | ||
105 | - </Menu> | ||
106 | -); | ||
107 | - | ||
108 | -//위의 상수 값들을 집어넣어 Dropdowm 메뉴 바들을 구성해준다. | ||
109 | -const DropMenu = () => ( | ||
110 | - //위의 상수 값들을 집어넣어 Dropdowm 메뉴 바들을 구성해준다. const DropMenu | ||
111 | - | ||
112 | - <div style={{ display: 'inline-block' }}> | ||
113 | - <Dropdown overlay={draw} placement="bottomLeft" arrow> | ||
114 | - <Button>Draw</Button> | ||
115 | - </Dropdown> | ||
116 | - <Button>Graph</Button> | ||
117 | - | ||
118 | - <Dropdown overlay={grid} placement="bottomRight" arrow> | ||
119 | - <Button>Grid</Button> | ||
120 | - </Dropdown> | ||
121 | - <Dropdown overlay={MathFunction} arrow> | ||
122 | - <Button>Function</Button> | ||
123 | - </Dropdown> | ||
124 | - </div> | ||
125 | -); | ||
126 | -export default DropMenu; | ||
127 | - | ||
128 | -//<Scroll> </Scroll> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
minsung/src/component/LoginForm.js
deleted
100644 → 0
1 | -import React from 'react'; | ||
2 | -import { Form, Input, Button, Checkbox, Row, Col } from 'antd'; | ||
3 | -import { UserOutlined, LockOutlined } from '@ant-design/icons'; | ||
4 | -import {HeartOutlined} from '@ant-design/icons'; | ||
5 | - | ||
6 | -const LoginForm = ({onFinish},) => { | ||
7 | - | ||
8 | - return ( | ||
9 | - <Form name="normal_login" className="login-form" initialValues={{remember: true, }} onFinish={onFinish}> | ||
10 | - <Row justify="center" style={{marginTop:'80px'}}> | ||
11 | - <HeartOutlined /> | ||
12 | - </Row> | ||
13 | - | ||
14 | - <Row justify="center" style={{marginTop:'20px'}}> | ||
15 | - <Col> | ||
16 | - <Form.Item name="userid" rules={[{required: true, message: 'id를 입력해주세요.', },]}> | ||
17 | - <Input prefix={<UserOutlined className="site-form-item-icon" />} placeholder="User id" /> | ||
18 | - </Form.Item> | ||
19 | - </Col> | ||
20 | - </Row> | ||
21 | - | ||
22 | - <Row justify="center" style={{marginTop:'10px'}}> | ||
23 | - <Col> | ||
24 | - <Form.Item name="userpwd" rules={[{required: true, message: '비밀번호를 입력해주세요.'},]}> | ||
25 | - <Input prefix={<LockOutlined className="site-form-item-icon" />} type="password" placeholder="Password"/> | ||
26 | - </Form.Item> | ||
27 | - </Col> | ||
28 | - </Row> | ||
29 | - | ||
30 | - <Row justify="center" style={{marginTop:'10px'}}> | ||
31 | - <Col> | ||
32 | - <Form.Item name="remember" valuePropName="checked" noStyle> | ||
33 | - <Checkbox>Remember me</Checkbox> | ||
34 | - </Form.Item> | ||
35 | - </Col> | ||
36 | - </Row> | ||
37 | - | ||
38 | - <Row justify="center" style={{marginTop:'10px'}}> | ||
39 | - <Col> | ||
40 | - <Form.Item> | ||
41 | - <Button type="primary" htmlType="submit" className="login-form-button"> | ||
42 | - 로그인하기 | ||
43 | - </Button> | ||
44 | - </Form.Item> | ||
45 | - </Col> | ||
46 | - </Row> | ||
47 | - | ||
48 | - </Form> | ||
49 | - ); | ||
50 | -} | ||
51 | - | ||
52 | -export default LoginForm; | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
minsung/src/component/tikzForm.js
deleted
100644 → 0
1 | -import React,{Flagment} from 'react'; | ||
2 | -import { Drawer, Input, Button, Menu, Form, Col, Row, AutoComplete, Tooltip, Select } from 'antd'; | ||
3 | -import { UploadOutlined, RetweetOutlined } from '@ant-design/icons'; | ||
4 | -import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'; | ||
5 | -import { PanZoom } from 'react-easy-panzoom'; | ||
6 | -import { InputNumber } from 'antd'; | ||
7 | -import { IFrame } from './iframe'; | ||
8 | -import './tikzForm.css'; | ||
9 | -const { TextArea } = Input; | ||
10 | -const {Option} = Select; | ||
11 | - | ||
12 | -const TikzForm = ({ svg, onClickEvent, onChangeTikz, onFinish, onChangeQno, onClickQno, tikzcode, fields, qno, onChangeTypeSol,onChangeTypeQue}) => { | ||
13 | - //svg | ||
14 | - //onclickevent : Tikz 변환하기 Button의 onClick Event | ||
15 | - //onChangeTikz : TextArea 컴포넌트의 onChange event | ||
16 | - //onFinish : Form data를 제출하기 위한 event | ||
17 | - //onSaveEvent : Tikz 등록하기의 버튼 event | ||
18 | - | ||
19 | -console.log(fields); | ||
20 | - | ||
21 | - return ( | ||
22 | - | ||
23 | - <Form onFinish={onFinish} fields={[...fields]}> | ||
24 | - | ||
25 | -<Form.Item | ||
26 | - name="qno" | ||
27 | - label="문제 번호" | ||
28 | - rules={[ | ||
29 | - { | ||
30 | - required: true, | ||
31 | - message: '문항번호를 입력해 주세요.', | ||
32 | - }, | ||
33 | - ]}><Row> | ||
34 | - <Col> | ||
35 | - <InputNumber | ||
36 | - min={0} | ||
37 | - max={10000} | ||
38 | - value={qno} | ||
39 | - onChange={onChangeQno}> | ||
40 | - </InputNumber> | ||
41 | - </Col> | ||
42 | - <Col> | ||
43 | - <Button onClick={onClickQno}>번호 확인</Button> | ||
44 | - </Col> | ||
45 | - </Row> | ||
46 | - </Form.Item> | ||
47 | - | ||
48 | - <Form.Item | ||
49 | - name="typeSol" | ||
50 | - label="문제 타입" | ||
51 | - wrapperCol={{span: 2 }} | ||
52 | - rules={[ | ||
53 | - { | ||
54 | - required: true, | ||
55 | - message: '문제 타입을 선택해 주세요.', | ||
56 | - }, | ||
57 | - ]}> | ||
58 | - <Select onChange={onChangeTypeSol}> | ||
59 | - <Option value="오지선다형">오지선다형</Option> | ||
60 | - <Option value="단답형">단답형</Option> | ||
61 | - <Option value="계산식">계산식</Option> | ||
62 | - </Select> | ||
63 | - </Form.Item> | ||
64 | - | ||
65 | - <Form.Item | ||
66 | - name="typeQue" | ||
67 | - label="문제/풀이 구분" | ||
68 | - rules={[ | ||
69 | - { | ||
70 | - required: true, | ||
71 | - message: '문제/풀이 구분을 선택해 주세요.', | ||
72 | - }, | ||
73 | - ]} | ||
74 | - wrapperCol={{span: 2 }} | ||
75 | - > | ||
76 | - <Select onChange={onChangeTypeQue}> | ||
77 | - <Option value="문제">문제</Option> | ||
78 | - <Option value="풀이">풀이</Option> | ||
79 | - </Select> | ||
80 | - </Form.Item> | ||
81 | - | ||
82 | - | ||
83 | - | ||
84 | - <Row justify="space-between" align="middle"> | ||
85 | - <Col span={11}> | ||
86 | - <Form.Item name="tikzCode" rules={[{ required: true, message: 'tikz 코드를 입력해 주세요.' }]} initialValue={tikzcode}> | ||
87 | - <TextArea | ||
88 | - style={{ width: '44vw', height: '70vh' }} | ||
89 | - onChange={onChangeTikz} | ||
90 | - /> | ||
91 | - </Form.Item> | ||
92 | - </Col> | ||
93 | - | ||
94 | - <Col span={2} style={{textAlign:'center'}} > | ||
95 | - <Tooltip title={'tikz 미리보기'}> | ||
96 | - <Button type="ghost" icon={<RetweetOutlined />} onClick={onClickEvent}></Button> | ||
97 | - </Tooltip> | ||
98 | - </Col> | ||
99 | - | ||
100 | - <Col span={11} > | ||
101 | - <IFrame | ||
102 | - style={{ | ||
103 | - width: '44vw', | ||
104 | - height: '70vh', | ||
105 | - marginTop: '-15px', | ||
106 | - border: '1px solid #d9d9d9', | ||
107 | - }}> | ||
108 | - <PanZoom | ||
109 | - style={{ | ||
110 | - display: 'block', | ||
111 | - outline: 'none', | ||
112 | - width: '44vw', | ||
113 | - height: '70vh', | ||
114 | - margin: '0px', | ||
115 | - }}> | ||
116 | - <div dangerouslySetInnerHTML={{ __html: svg }} /> | ||
117 | - </PanZoom> | ||
118 | - </IFrame> | ||
119 | - </Col> | ||
120 | - </Row> | ||
121 | - <Form.Item> | ||
122 | - <Button type="primary" htmlType="submit"> | ||
123 | - 저장하기 | ||
124 | - </Button> | ||
125 | - </Form.Item> | ||
126 | - </Form> | ||
127 | - ); | ||
128 | -}; | ||
129 | - | ||
130 | -export default TikzForm; |
minsung/src/component/uploadForm.js
deleted
100644 → 0
1 | -import { Upload, Button, message } from 'antd'; | ||
2 | -import { UploadOutlined } from '@ant-design/icons'; | ||
3 | -import reqwest from 'reqwest'; | ||
4 | - | ||
5 | -class Demo extends React.Component { | ||
6 | - state = { | ||
7 | - fileList: [], | ||
8 | - uploading: false, | ||
9 | - }; | ||
10 | - | ||
11 | - handleUpload = () => { | ||
12 | - const { fileList } = this.state; | ||
13 | - const formData = new FormData(); | ||
14 | - fileList.forEach((file) => { | ||
15 | - formData.append('files[]', file); | ||
16 | - }); | ||
17 | - | ||
18 | - this.setState({ | ||
19 | - uploading: true, | ||
20 | - }); | ||
21 | - | ||
22 | - // You can use any AJAX library you like | ||
23 | - reqwest({ | ||
24 | - url: 'https://localhost:5000/user', | ||
25 | - method: 'post', | ||
26 | - processData: false, | ||
27 | - data: formData, | ||
28 | - success: () => { | ||
29 | - this.setState({ | ||
30 | - fileList: [], | ||
31 | - uploading: false, | ||
32 | - }); | ||
33 | - message.success('upload successfully.'); | ||
34 | - }, | ||
35 | - error: () => { | ||
36 | - this.setState({ | ||
37 | - uploading: false, | ||
38 | - }); | ||
39 | - message.error('upload failed.'); | ||
40 | - }, | ||
41 | - }); | ||
42 | - }; | ||
43 | - | ||
44 | - render() { | ||
45 | - const { uploading, fileList } = this.state; | ||
46 | - const props = { | ||
47 | - onRemove: (file) => { | ||
48 | - this.setState((state) => { | ||
49 | - const index = state.fileList.indexOf(file); | ||
50 | - const newFileList = state.fileList.slice(); | ||
51 | - newFileList.splice(index, 1); | ||
52 | - return { | ||
53 | - fileList: newFileList, | ||
54 | - }; | ||
55 | - }); | ||
56 | - }, | ||
57 | - beforeUpload: (file) => { | ||
58 | - this.setState((state) => ({ | ||
59 | - fileList: [...state.fileList, file], | ||
60 | - })); | ||
61 | - return false; | ||
62 | - }, | ||
63 | - fileList, | ||
64 | - }; | ||
65 | - | ||
66 | - return ( | ||
67 | - <> | ||
68 | - <Upload {...props}> | ||
69 | - <Button> | ||
70 | - <UploadOutlined /> Select File | ||
71 | - </Button> | ||
72 | - </Upload> | ||
73 | - <Button | ||
74 | - type="primary" | ||
75 | - onClick={this.handleUpload} | ||
76 | - disabled={fileList.length === 0} | ||
77 | - loading={uploading} | ||
78 | - style={{ marginTop: 16 }}> | ||
79 | - {uploading ? 'Uploading' : 'Start Upload'} | ||
80 | - </Button> | ||
81 | - </> | ||
82 | - ); | ||
83 | - } | ||
84 | -} |
minsung/src/index.css
deleted
100644 → 0
1 | -body { | ||
2 | - margin: 0; | ||
3 | - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', | ||
4 | - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', | ||
5 | - sans-serif; | ||
6 | - -webkit-font-smoothing: antialiased; | ||
7 | - -moz-osx-font-smoothing: grayscale; | ||
8 | -} | ||
9 | - | ||
10 | -code { | ||
11 | - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', | ||
12 | - monospace; | ||
13 | -} |
minsung/src/index.js
deleted
100644 → 0
1 | -import React from 'react'; | ||
2 | -import ReactDOM from 'react-dom'; | ||
3 | -import './index.css'; | ||
4 | -import App from './App'; | ||
5 | -import * as serviceWorker from './serviceWorker'; | ||
6 | -import { createBrowserHistory } from 'history'; | ||
7 | -import { BrowserRouter,Router } from 'react-router-dom'; | ||
8 | - | ||
9 | -const history = createBrowserHistory(); | ||
10 | -//<BrowserRouter history={history}></BrowserRouter> | ||
11 | -ReactDOM.render( | ||
12 | - <BrowserRouter history={history}> | ||
13 | - <App /> | ||
14 | - </BrowserRouter> | ||
15 | - , | ||
16 | - document.getElementById('root') | ||
17 | -); | ||
18 | - | ||
19 | -// If you want your app to work offline and load faster, you can change | ||
20 | -// unregister() to register() below. Note this comes with some pitfalls. | ||
21 | -// Learn more about service workers: https://bit.ly/CRA-PWA | ||
22 | -serviceWorker.unregister(); |
minsung/src/lib/api/checkFiles.js
deleted
100644 → 0
1 | -import axios from 'axios'; | ||
2 | -import qs from 'qs'; | ||
3 | -export const checkFiles = (data, whatUpload) => { | ||
4 | - const options = { | ||
5 | - method: 'POST', | ||
6 | - headers: { 'content-type': 'application/x-www-form-urlencoded' }, | ||
7 | - data: qs.stringify(data), | ||
8 | - url: 'http://localhost:5000/{whatUpload}', | ||
9 | - }; | ||
10 | - return axios(options); | ||
11 | -}; | ||
12 | - | ||
13 | -//export const tikz = (id) => tikz.post(`/users?id=${id != null ? id : ''}`); | ||
14 | -//export const testAdd = (name, tel) => client.post('/users/add', { name, tel }); |
minsung/src/lib/api/client.js
deleted
100644 → 0
minsung/src/lib/api/feedback.js
deleted
100644 → 0
minsung/src/lib/api/html.js
deleted
100644 → 0
1 | -import axios from 'axios'; | ||
2 | -const hostMath = "http://ai.natmal.com:7070"; | ||
3 | - | ||
4 | -export const checkQno = (qno) => axios.get(`${hostMath}/checkQno?qno=${qno}`); | ||
5 | - | ||
6 | -export const saveFileAndQno = (formData) => | ||
7 | -{ | ||
8 | - return axios({ | ||
9 | - method: 'post', | ||
10 | - url: '/upload/html', | ||
11 | - data: formData, | ||
12 | - headers: { | ||
13 | - 'Content-Type': 'multipart/form-data', | ||
14 | - }, | ||
15 | - }); | ||
16 | -} | ||
17 | - | ||
18 | -export const getData = (user, pageSize, currentPage,orderWhat,orderKind) => axios.post('/tikzs',{user, pageSize, currentPage,orderWhat,orderKind}); | ||
19 | - |
minsung/src/lib/api/login.js
deleted
100644 → 0
1 | -import axios from 'axios'; | ||
2 | -import qs from 'qs'; | ||
3 | -export const getLoginInfo = (data) => | ||
4 | -{ | ||
5 | - const options = { | ||
6 | - method: 'POST', | ||
7 | - headers: { 'content-type': 'application/x-www-form-urlencoded' }, | ||
8 | - data: qs.stringify(data), | ||
9 | - url:'http://ai.natmal.com:7070/checkUser', | ||
10 | - }; | ||
11 | - return axios(options); | ||
12 | - | ||
13 | - | ||
14 | -} | ||
15 | - | ||
16 | - | ||
17 | -//export const tikz = (id) => tikz.post(`/users?id=${id != null ? id : ''}`); | ||
18 | -//export const testAdd = (name, tel) => client.post('/users/add', { name, tel }); |
minsung/src/lib/api/matchInfo.js
deleted
100644 → 0
1 | -import axios from 'axios'; | ||
2 | -import qs from 'qs'; | ||
3 | -export const matchInfo = (data) => | ||
4 | -{ | ||
5 | - const options = { | ||
6 | - method: 'GET', | ||
7 | - headers: { 'content-type': 'application/x-www-form-urlencoded' }, | ||
8 | - data: qs.stringify(data), | ||
9 | - url:'http://localhost:5000/users', | ||
10 | - }; | ||
11 | - return axios(options); | ||
12 | - | ||
13 | - | ||
14 | -} | ||
15 | - | ||
16 | - | ||
17 | -//export const tikz = (id) => tikz.post(`/users?id=${id != null ? id : ''}`); | ||
18 | -//export const testAdd = (name, tel) => client.post('/users/add', { name, tel }); |
minsung/src/lib/api/mathCha.js
deleted
100644 → 0
1 | -import axios from 'axios'; | ||
2 | -const hostMath = 'http://ai.natmal.com:7070'; | ||
3 | - | ||
4 | -export const checkQno = (qno) => axios.get(`${hostMath}/checkQno?qno=${qno}`); | ||
5 | -export const saveFileAndQno = (formData) => | ||
6 | -{ | ||
7 | - console.log(formData); | ||
8 | - return axios({ | ||
9 | - method: 'post', | ||
10 | - url: '/upload/math', | ||
11 | - data: formData, | ||
12 | - headers: { | ||
13 | - 'Content-Type': 'multipart/form-data', | ||
14 | - }, | ||
15 | - }); | ||
16 | -} | ||
17 | - | ||
18 | -//export const getMathData = (user, pageSize, currentPage,orderWhat) => axios.post('/tikzs',{user, pageSize, currentPage,ordeWhat}); | ||
19 | - | ||
20 | - |
minsung/src/lib/api/test.js
deleted
100644 → 0
1 | -import client from './client'; | ||
2 | - | ||
3 | -export const testFind = (id) => client.get(`/users?id=${id != null ? id : ''}`); | ||
4 | -export const testAdd = (name, tel) => client.post('/users/add', { name, tel }); | ||
5 | -export const testEdit = (id, name, tel) => | ||
6 | - client.post('/users/edit', { id, name, tel }); | ||
7 | -export const testDelete = (id) => client.get('/users/delete?id=' + id); |
minsung/src/lib/api/tikz.js
deleted
100644 → 0
1 | -import axios from 'axios'; | ||
2 | -import qs from 'qs'; | ||
3 | -export const getTexToSvg = (data) => | ||
4 | -{ | ||
5 | - const options = { | ||
6 | - method: 'POST', | ||
7 | - headers: { 'content-type': 'application/x-www-form-urlencoded' }, | ||
8 | - data: qs.stringify(data), | ||
9 | - url:'http://ai.natmal.com:9292', | ||
10 | - }; | ||
11 | - return axios(options); | ||
12 | - | ||
13 | -} | ||
14 | - | ||
15 | -const hostMath = "http://ai.natmal.com:7070"; | ||
16 | - | ||
17 | -export const checkQno = (qno) => axios.get(`${hostMath}/checkQno?qno=${qno}`); | ||
18 | - | ||
19 | -export const saveFileAndQno = (data) => axios.post('/upload/tikz',{...data}); | ||
20 | - | ||
21 | -export const removeItem = (id) => axios.get(`/tikzs/removeItem?id=${id}`); | ||
22 | - | ||
23 | -export const removeItems = (ids) => axios.post("/tikzs/removeItems",{ids}); | ||
24 | - | ||
25 | - | ||
26 | -//export const getData = (user, pageSize, currentPage,orderWhat) => axios.post('/tikzs',{user, pageSize, currentPage,ordeWhat}); | ||
27 | - | ||
28 | - | ||
29 | - | ||
30 | - | ||
31 | -//export const tikz = (id) => tikz.post(`/users?id=${id != null ? id : ''}`); | ||
32 | -//export const testAdd = (name, tel) => client.post('/users/add', { name, tel }); |
minsung/src/lib/bluejuicer.png
deleted
100644 → 0
47.9 KB
minsung/src/lib/giflogo.gif
deleted
100644 → 0
705 KB
minsung/src/lib/graphconsole.png
deleted
100644 → 0
51.1 KB
minsung/src/lib/heartgraph.png
deleted
100644 → 0
5.76 KB
minsung/src/lib/latexlogo.png
deleted
100644 → 0
29.6 KB
minsung/src/lib/mathbank.png
deleted
100644 → 0
41.2 KB
minsung/src/lib/newspaper.jpg
deleted
100644 → 0
472 KB
minsung/src/lib/orangejuicer.png
deleted
100644 → 0
47.8 KB
minsung/src/lib/pngegg.png
deleted
100644 → 0
3.62 KB
minsung/src/lib/skybluejuicer.png
deleted
100644 → 0
47.5 KB
minsung/src/lib/yellowjuicer.png
deleted
100644 → 0
48 KB
-
Please register or login to post a comment