{"version":3,"file":"vote_cfp.js","mappings":"AAAAA,YAAA,WACA,IAAAC,EAAA,GAMA,OALAC,SAAAC,OAAAC,MAAA,KAA4BC,QAAA,SAAAF,GAC5BA,EAAAG,SAAA,eACAL,EAAAM,KAAAC,MAAAL,EAAAC,MAAA,SAEA,GACAH,CACA,EAEAQ,WAAA,SAAAC,GACA,IAAAC,EAAAX,cACAW,EAAAC,KAAAF,GACAR,SAAAC,OAAA,YAAAI,KAAAM,UAAAF,EACA,EAEAG,YAAA,WACA,IAAAC,EAAAb,SAAAc,eAAA,QACAD,EAAAE,UAAA,EACAF,EAAAG,UAAA,MACA,EAEAhB,SAAAc,eAAA,QAAAG,iBAAA,mBACA,SAAAC,IACAC,MAAA,8CACA,CACA,MAAAC,EAAApB,SAAAc,eAAA,QAAAO,aAAA,YAEAC,EAAAtB,SAAAc,eAAA,QAAAO,aAAA,cACAE,EAAAC,SAAAxB,SAAAc,eAAA,QAAAO,aAAA,YAEAI,EAAA,8DAEwBH,0BACFC,uBAGtBG,EAAArB,KAAAM,UAAA,CAAkCc,UAClCE,EAAA,CAAsB,mCAEtB,IACAC,MAAAR,EAAA,CAAwBS,OAXxB,OAWwBF,UAAAD,SACxBI,KAAAC,IACA,IAAAA,EAAAC,GACA,UAAAC,MAEA,OAAAF,EAAAG,SAEAJ,KAAAK,IACA,GAAAA,EAAAC,eAAA,UACA,UAAAH,MAEA1B,WAAAgB,GACAX,gBAGAyB,MAAAC,IACApB,KAEA,CAAM,MAAAoB,GACNpB,GACA,CACA,QACA,GAEAqB,OAAAtB,iBAAA,8BACAnB,cAAAM,SAAAoB,SAAAxB,SAAAc,eAAA,QAAAO,aAAA,cACAT,aAEA","sources":["webpack://cndtattend/./app/javascript/packs/vote_cfp.js"],"sourcesContent":["getVotedIds = function() {\n let votedIds = [];\n document.cookie.split(';').forEach(function(cookie) {\n if (cookie.includes('voted_id=')) {\n votedIds = JSON.parse(cookie.split('=')[1]);\n }\n })\n return votedIds;\n}\n\nsetVotedId = function(id) {\n let arr = getVotedIds();\n arr.push(id);\n document.cookie = \"voted_id=\" + JSON.stringify(arr);\n}\n\ntoggleVoted = function() {\n let btn = document.getElementById('vote');\n btn.disabled = true;\n btn.innerHTML = \"投票済み\";\n}\n\ndocument.getElementById('vote').addEventListener('click', function() {\n function print_vote_alert () {\n alert(\"投票を受け付けられませんでした。\\nしばらく時間をおいてから再度の投票をお願いします。\");\n }\n const voteUrl = document.getElementById('vote').getAttribute('vote_url');\n\n const eventAbbr = document.getElementById('vote').getAttribute('event_name');\n const talkId = parseInt(document.getElementById('vote').getAttribute('talk_id'));\n const method = 'POST'\n const query = `mutation {\n vote(input: {\n confName: ${eventAbbr}\n talkId: ${talkId}\n })\n }`;\n const body = JSON.stringify({ query });\n const headers = { 'Content-Type': 'application/json' };\n\n try {\n fetch(voteUrl,{ method, headers, body})\n .then(r=> {\n if (!r.ok) {\n throw new Error();\n }\n return r.json();\n })\n .then(data => {\n if (data.hasOwnProperty('errors')) {\n throw new Error();\n } else {\n setVotedId(talkId);\n toggleVoted();\n }\n })\n .catch(e => {\n print_vote_alert();\n })\n } catch(e) {\n print_vote_alert();\n }\n return false;\n});\n\nwindow.addEventListener('DOMContentLoaded', function() {\n if (getVotedIds().includes(parseInt(document.getElementById('vote').getAttribute('talk_id')))) {\n toggleVoted();\n }\n})\n"],"names":["getVotedIds","votedIds","document","cookie","split","forEach","includes","JSON","parse","setVotedId","id","arr","push","stringify","toggleVoted","btn","getElementById","disabled","innerHTML","addEventListener","print_vote_alert","alert","voteUrl","getAttribute","eventAbbr","talkId","parseInt","query","body","headers","fetch","method","then","r","ok","Error","json","data","hasOwnProperty","catch","e","window"],"sourceRoot":""}