{"version":3,"sources":["Action.js","App.js","ACTWebsocket.js","serviceWorker.js","index.js"],"names":["gcdOverrides","Set","ogcdOverrides","Action","_ref","action_id","_React$useState","React","useState","_React$useState2","Object","slicedToArray","apiData","setApiData","useEffect","current","asyncToGenerator","regenerator_default","a","mark","_callee","data","wrap","_context","prev","next","fetch","concat","mode","sent","json","stop","undefined","Icon","react_default","createElement","className","has","ActionCategory","ID","src","alt","Name","App","props","_this","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","me","actionlist","actionindex","lastAddedTimestamp","lastAddedAction","listenActWebSocket","callback","url","URLSearchParams","window","location","search","wsUri","get","ws","WebSocket","onerror","onmessage","e","m","send","obj","JSON","parse","msgtype","msg","code","substring","handleLogEvent","bind","assertThisInitialized","charID","setState","log","split","parseInt","action","index","setTimeout","purgeAction","slice","actions","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","done","value","push","Action_Action","key","err","return","Component","Boolean","hostname","match","ReactDOM","render","src_App","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.e258d74f.chunk.js","sourcesContent":["import React from 'react'\r\nimport './css/Action.css'\r\n\r\nconst gcdOverrides = new Set([\r\n\t15997, //standard step\r\n\t15998, //technical step\r\n\t15999, \r\n\t16000,\r\n\t16001,\r\n\t16002, //step actions\r\n\t16003, //standard finish\r\n\t16004, //technical finish\r\n\t16191, //single standard finish\r\n\t16192, //double standard finish (WHY IS IT LIKE THIS)\r\n\t16193, //single technical finish\r\n\t16194, //double technical finish\r\n\t16195, //triple technical finish\r\n\t16196, //quadruple technical finish\r\n\t7418, //flamethrower\r\n\t16483 //tsubame-gaeshi\r\n])\r\n\r\nconst ogcdOverrides = new Set([\r\n\t3559, //bard WM\r\n\t116, //bard AP\r\n\t114 //bard MB\r\n])\r\n\r\nexport default function Action({ action_id }) {\r\n\tconst [apiData, setApiData] = React.useState()\r\n\t\r\n\tReact.useEffect(() => {\r\n\t\tlet current = true\r\n\t\tvoid (async () => {\r\n\t\t\tconst data = await (\r\n\t\t\t\tawait fetch(`https://xivapi.com/Action/${action_id}`, { mode: 'cors' })\r\n\t\t\t).json()\r\n\t\t\tif (current) {\r\n\t\t\t\tsetApiData(data)\r\n\t\t\t}\r\n\t\t})()\r\n\r\n\t\treturn () => {\r\n\t\t\tcurrent = false\r\n\t\t}\r\n\t}, [action_id])\r\n\t\r\n\tif (apiData === undefined || !apiData.Icon) {\r\n\t\treturn null\r\n\t}\r\n\t\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n","import React from 'react'\r\nimport listenActWebSocket from './ACTWebsocket'\r\nimport './css/App.css'\r\nimport Action from './Action'\r\n\r\nclass App extends React.Component {\r\n\tstate = {\r\n\t\tme: 0,\r\n\t\tactionlist: [],\r\n\t\tactionindex: 1,\r\n\t\tlastAddedTimestamp: '',\n\t\tlastAddedAction: -1,\r\n\t}\r\n\t\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\t\r\n\t\tlistenActWebSocket(this.handleLogEvent.bind(this))\r\n\t}\r\n\t\r\n\thandleLogEvent(data) {\r\n\t\tif(data.charID) {\r\n\t\t\tthis.setState({me: data.charID})\r\n\t\t\treturn\r\n\t\t} //the ME data we need\r\n\t\t\r\n\t\tconst me = this.state.me\r\n\t\t\r\n\t\tif(me === 0) return //we need data on the character first\r\n\t\t\r\n\t\tlet log = data.split('|')\r\n\t\t\r\n\t\tif(parseInt(log[2],16) !== me) return //we only care about our actions\r\n\t\t\r\n\t\tconst action = parseInt(log[4],16)\r\n\t\t\r\n\t\tif(action <= 8) return //things we don't care about i.e. sprint auto-attacks\r\n\t\t\r\n\t\tif(this.state.lastAddedTimestamp === log[1] && this.state.lastAddedAction === action) return //no double aoe stuff\r\n\t\t\r\n\t\tconst index = this.state.actionindex\r\n\t\t\r\n\t\tthis.setState((state) => {\r\n\t\t\tconst actionindex = (state.actionindex >= 32)?1:state.actionindex+1\r\n\t\t\tconst lastAddedTimestamp = log[1]\n\t\t\tconst lastAddedAction = action\r\n\t\t\tconst actionlist = state.actionlist.concat({index,action});\r\n\t\t\t\r\n\t\t\treturn {actionindex,lastAddedTimestamp,lastAddedAction,actionlist}\r\n\t\t})\r\n\t\t\r\n\t\tsetTimeout(this.purgeAction.bind(this), 10000)\r\n\t}\r\n\t\r\n\tpurgeAction() {\r\n\t\tthis.setState((state) => {\r\n\t\t\tconst actionlist = state.actionlist.slice(1)\r\n\t\t\t\r\n\t\t\treturn {actionlist}\r\n\t\t})\r\n\t}\r\n\t\r\n\trender() {\r\n\t\tlet actions = []\r\n\t\t\r\n\t\tfor (const action of this.state.actionlist) {\r\n\t\t\tactions.push(