{"version":3,"sources":["aws-exports.js","GraphQL/QueryAllEvents.js","GraphQL/MutationDeleteEvent.js","Components/AllEvents.js","GraphQL/QueryGetEvent.js","GraphQL/MutationCreateEvent.js","Utils.js","Components/DateTimePickerCustomInput.js","Components/NewEvent.js","GraphQL/SubsriptionEventComments.js","GraphQL/MutationCommentOnEvent.js","Components/NewComment.js","Components/EventComments.js","Components/ViewEvent.js","App.js","registerServiceWorker.js","index.js"],"names":["awsmobile","gql","AllEvents","state","busy","handleSync","a","client","props","query","QueryAllEvents","setState","fetchPolicy","renderEvent","event","Link","to","id","className","key","name","moment","when","format","where","description","comments","items","length","onClick","handleDeleteClick","bind","e","preventDefault","window","confirm","deleteEvent","this","events","disabled","aria-hidden","concat","sort","b","localeCompare","map","Component","defaultProps","withApollo","compose","graphql","options","data","listEvents","MutationDeleteEvent","update","proxy","readQuery","filter","writeQuery","mutate","variables","optimisticResponse","__typename","nearest15min","interval","someMoment","roundedMinutes","Math","round","clone","minute","second","nearestMinutes","utc","DateTimePickerCustomInput","value","NewEvent","handleSave","stopPropagation","createEvent","history","push","field","target","handleChange","htmlFor","type","onChange","customInput","selected","handleDateChange","peekNextMonth","showMonthDropdown","showYearDropdown","dropdownMode","showTimeSelect","timeFormat","timeIntervals","dateFormat","rows","MutationCreateEvent","query2","QueryGetEvent","data2","getEvent","uuid","NewComment","defaultState","handleSubmit","comment","eventId","createComment","loading","createdAt","content","NewCommentWithData","MutationCommentOnEvent","commentOnEvent","c","commentId","EventComments","renderComment","subscription","subscribeToComments","EventCommentsWithData","subscribeToMore","document","SubsriptionEventComments","ownProps","updateQuery","prev","subscribeToEventComments","subscriptionData","ViewEvent","ViewEventWithData","match","params","Home","App","Route","exact","path","component","AWSAppSyncClient","url","appSyncConfig","aws_appsync_graphqlEndpoint","region","aws_appsync_region","auth","aws_appsync_authenticationType","apiKey","aws_appsync_apiKey","cacheOptions","dataIdFromObject","obj","defaultDataIdFromObject","typename","WithProvider","isLocalhost","Boolean","location","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","catch","error","ReactDOM","render","getElementById","URL","process","origin","addEventListener","fetch","response","status","headers","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"2WASeA,G,cAPI,CACf,4BAA+B,sFAC/B,mBAAsB,iBACtB,+BAAkC,UAClC,mBAAsB,mC,sICJXC,cAAI,oNCAJA,cAAI,sL,iBCObC,E,4MAEFC,MAAQ,CACJC,MAAM,G,EAkBVC,W,sBAAa,8BAAAC,EAAA,6DACDC,EAAW,EAAKC,MAAhBD,OACFE,EAAQC,EAEd,EAAKC,SAAS,CAAEP,MAAM,IAJb,SAMHG,EAAOE,MAAM,CACfA,QACAG,YAAa,iBARR,OAWT,EAAKD,SAAS,CAAEP,MAAM,IAXb,2C,EAcbS,YAAc,SAACC,GAAD,OACV,kBAACC,EAAA,EAAD,CAAMC,GAAE,iBAAYF,EAAMG,IAAMC,UAAU,OAAOC,IAAKL,EAAMG,IACxD,yBAAKC,UAAU,WACX,yBAAKA,UAAU,UAAUJ,EAAMM,OAEnC,yBAAKF,UAAU,WACX,2BAAG,uBAAGA,UAAU,kBAAqBG,IAAOP,EAAMQ,MAAMC,OAAO,OAC/D,2BAAG,uBAAGL,UAAU,eAAkBG,IAAOP,EAAMQ,MAAMC,OAAO,OAC5D,2BAAG,uBAAGL,UAAU,gBAAmBJ,EAAMU,QAE7C,yBAAKN,UAAU,WACX,yBAAKA,UAAU,eAAc,uBAAGA,UAAU,qBAAwBJ,EAAMW,cAE5E,yBAAKP,UAAU,iBACX,uBAAGA,UAAU,iBADjB,IACsCJ,EAAMY,SAASC,MAAMC,OAD3D,aAGA,4BAAQV,UAAU,4BAA4BW,QAAS,EAAKC,kBAAkBC,KAAvB,eAAkCjB,IACrF,uBAAGI,UAAU,eADjB,Y,8FAxCR,WAAwBJ,EAAOkB,GAA/B,eAAA1B,EAAA,yDACI0B,EAAEC,kBAEEC,OAAOC,QAAP,gDAAwDrB,EAAMG,KAHtE,uBAIgBmB,EAAgBC,KAAK7B,MAArB4B,YAJhB,SAMcA,EAAYtB,GAN1B,gD,6EA+CA,WACI,IAAQV,EAASiC,KAAKlC,MAAdC,KACAkC,EAAWD,KAAK7B,MAAhB8B,OAER,OACI,6BACI,yBAAKpB,UAAU,6BACX,wBAAIA,UAAU,0BAAd,cACA,4BAAQA,UAAU,4BAA4BW,QAASQ,KAAKhC,WAAYkC,SAAUnC,GAC9E,uBAAGoC,cAAY,OAAOtB,UAAS,uBAAkBd,GAAQ,aAD7D,qBAKJ,yBAAKc,UAAU,iBACX,yBAAKA,UAAU,aACX,kBAACH,EAAA,EAAD,CAAMC,GAAG,YAAYE,UAAU,oCAC3B,uBAAGA,UAAU,qBACb,iDAGP,GAAGuB,OAAOH,GAAQI,MAAK,SAACpC,EAAGqC,GAAJ,OAAUrC,EAAEgB,KAAKsB,cAAcD,EAAErB,SAAOuB,IAAIR,KAAKxB,mB,GA9ErEiC,aAAlB5C,EAMK6C,aAAe,CAClBT,OAAQ,GACRF,YAAa,kBAAM,OA8EZY,2BAAWC,kBACtBC,kBACIxC,EACA,CACIyC,QAAS,CACLvC,YAAa,eAEjBJ,MAAO,oBAAG4C,KAAQC,WAAX,MAA+C,CAClDf,aADG,MAAwB,CAAEX,MAAO,IAAjC,GACgBA,UAI/BuB,kBACII,EACA,CACIH,QAAS,CACLI,OAAQ,SAACC,EAAD,GAAuC,IAArBpB,EAAoB,EAA5BgB,KAAQhB,YAChB3B,EAAQC,EACR0C,EAAOI,EAAMC,UAAU,CAAEhD,UAE/B2C,EAAKC,WAAW1B,MAAQyB,EAAKC,WAAW1B,MAAM+B,QAAO,SAAA5C,GAAK,OAAIA,EAAMG,KAAOmB,EAAYnB,MAEvFuC,EAAMG,WAAW,CAAElD,QAAO2C,WAGlC5C,MAAO,SAACA,GAAD,MAAY,CACf4B,YAAa,SAACtB,GACV,OAAON,EAAMoD,OAAO,CAChBC,UAAW,CAAE5C,GAAIH,EAAMG,IACvB6C,mBAAoB,iBAAO,CACvB1B,YAAY,2BACLtB,GADI,IACGiD,WAAY,QAASrC,SAAU,CAAEqC,WAAY,oBAAqBpC,MAAO,eA/BzFsB,CAuCxB/C,I,gBCpIaD,cAAI,sOCAJA,cAAI,kU,SCKN+D,EAAe,kBALE,SAACC,EAAUC,GACrC,IAAMC,EAAiBC,KAAKC,MAAMH,EAAWI,QAAQC,SAAWN,GAAYA,EAC5E,OAAOC,EAAWI,QAAQC,OAAOJ,GAAgBK,OAAO,GAG1BC,CAAe,GAAIpD,IAAOqD,QCJvCC,E,4JAEjB,WACI,OACI,4BAAQ1D,GAAIoB,KAAK7B,MAAMS,GAAIC,UAAU,+BAA+BW,QAASQ,KAAK7B,MAAMqB,SACpF,uBAAGX,UAAU,kBACZmB,KAAK7B,MAAMoE,W,GAN2B9B,aCYjD+B,E,4MAMF1E,MAAQ,CACJW,MAAO,CACHM,KAAM,GACNE,KAAM0C,IAAezC,SACrBC,MAAO,GACPC,YAAa,K,EAgBrBqD,W,uCAAa,WAAO9C,GAAP,qBAAA1B,EAAA,6DACT0B,EAAE+C,kBACF/C,EAAEC,iBAFO,EAIwB,EAAKzB,MAA9BwE,EAJC,EAIDA,YAAaC,EAJZ,EAIYA,QACbnE,EAAU,EAAKX,MAAfW,MALC,SAOHkE,EAAY,eAAKlE,IAPd,OASTmE,EAAQC,KAAK,KATJ,2C,wGAZb,SAAaC,EAAb,GAA4C,IAAZP,EAAW,EAArBQ,OAAUR,MACpB9D,EAAUuB,KAAKlC,MAAfW,MAERA,EAAMqE,GAASP,EAEfvC,KAAK1B,SAAS,CAAEG,Y,8BAGpB,SAAiBqE,EAAOP,GACpBvC,KAAKgD,aAAaF,EAAO,CAAEC,OAAQ,CAAER,MAAOA,EAAMrD,c,oBAetD,WACI,IAAQT,EAAUuB,KAAKlC,MAAfW,MAER,OACI,yBAAKI,UAAU,2CACX,wBAAIA,UAAU,aAAd,mBACA,yBAAKA,UAAU,WACX,yBAAKA,UAAU,6BACX,2BAAOoE,QAAQ,QAAf,QACA,2BAAOC,KAAK,OAAOtE,GAAG,OAAO2D,MAAO9D,EAAMM,KAAMoE,SAAUnD,KAAKgD,aAAatD,KAAKM,KAAM,WAE3F,yBAAKnB,UAAU,6BACX,2BAAOoE,QAAQ,QAAf,QACA,kBAAC,IAAD,CACIpE,UAAU,eACVuE,YAAa,kBAAC,EAAD,MACbxE,GAAG,OACHyE,SAAUrE,IAAOP,EAAMQ,MACvBkE,SAAUnD,KAAKsD,iBAAiB5D,KAAKM,KAAM,QAC3CuD,eAAa,EACbC,mBAAiB,EACjBC,kBAAgB,EAChBC,aAAa,SACbC,gBAAc,EACdC,WAAW,UACXC,cAAe,GACfC,WAAW,WAGnB,yBAAKjF,UAAU,6BACX,2BAAOoE,QAAQ,SAAf,SACA,2BAAOC,KAAK,OAAOtE,GAAG,QAAQ2D,MAAO9D,EAAMU,MAAOgE,SAAUnD,KAAKgD,aAAatD,KAAKM,KAAM,YAE7F,yBAAKnB,UAAU,6BACX,2BAAOoE,QAAQ,eAAf,eACA,8BAAUlE,KAAK,cAAcH,GAAG,cAAcmF,KAAK,KAAKxB,MAAO9D,EAAMW,YACjE+D,SAAUnD,KAAKgD,aAAatD,KAAKM,KAAM,kBAE/C,yBAAKnB,UAAU,cACX,kBAACH,EAAA,EAAD,CAAMC,GAAG,IAAIE,UAAU,aAAvB,UACA,yBAAKA,UAAU,OACf,4BAAQA,UAAU,qBAAqBW,QAASQ,KAAKyC,YAArD,e,GAhFDhC,aAAjB+B,EAEK9B,aAAe,CAClBiC,YAAa,kBAAM,OAsFZ9B,wBACXmD,EACA,CACI7F,MAAO,SAACA,GAAD,MAAY,CACfwE,YAAa,SAAClE,GACV,OAAON,EAAMoD,OAAO,CAChBL,OAAQ,SAACC,EAAD,GAAuC,IAArBwB,EAAoB,EAA5B5B,KAAQ4B,YAEhBvE,EAAQC,EACR0C,EAAOI,EAAMC,UAAU,CAAEhD,UAE/B2C,EAAKC,WAAW1B,MAAhB,sBAA4ByB,EAAKC,WAAW1B,MAAM+B,QAAO,SAAA1B,GAAC,OAAIA,EAAEf,KAAO+D,EAAY/D,OAAnF,CAAwF+D,IAExFxB,EAAMG,WAAW,CAAElD,QAAO2C,SAG1B,IAAMkD,EAASC,EACT1C,EAAY,CAAE5C,GAAI+D,EAAY/D,IAC9BuF,EAAQ,CAAEC,SAAS,eAAMzB,IAE/BxB,EAAMG,WAAW,CAAElD,MAAO6F,EAAQzC,YAAWT,KAAMoD,KAEvD3C,UAAW/C,EACXgD,mBAAoB,iBAAO,CACvBkB,YAAY,2BACLlE,GADI,IACGG,GAAIyF,eAAQ3C,WAAY,QAASrC,SAAU,CAAEqC,WAAY,oBAAqBpC,MAAO,cAzB5GuB,CAgCb2B,GCtIa5E,cAAI,wJCAJA,cAAI,+PCMb0G,E,4MAaFxG,MAAQwG,EAAWC,a,EAEnBC,a,uCAAe,WAAO7E,GAAP,qBAAA1B,EAAA,6DACX0B,EAAE+C,kBACF/C,EAAEC,iBACM6E,EAAY,EAAK3G,MAAjB2G,QAHG,EAIwB,EAAKtG,MAAhCuG,EAJG,EAIHA,QAASC,EAJN,EAIMA,cAEjB,EAAKrG,SAAS,CAAEsG,SAAS,IANd,SAQLD,EAAc,2BACbF,GADY,IAEfC,UACAG,UAAW7F,IAAOqD,MAAMnD,YAXjB,OAcX,EAAKZ,SAASgG,EAAWC,cAdd,2C,wDAiBfvB,aAAe,YAAqC,IAAjB8B,EAAgB,EAAjC/B,OAAUR,MACxB,EAAKjE,SAAS,CAAEmG,QAAS,CAAEK,c,4CAG/B,WACI,MAA6B9E,KAAKlC,MAA1B2G,EAAR,EAAQA,QAASG,EAAjB,EAAiBA,QACjB,OACI,0BAAM/F,UAAU,iBACZ,yBAAKA,UAAU,SACX,8BAAU0D,MAAOkC,EAAQK,QAAS3B,SAAUnD,KAAKgD,aAAc9C,SAAU0E,KAE7E,4BAAQ/F,UAAS,6CAAwC+F,EAAU,UAAY,IAC3E1E,SAAU0E,EAASpF,QAASQ,KAAKwE,cACjC,uBAAG3F,UAAU,cAFjB,oB,GA3CS4B,aAAnB6D,EAEK5D,aAAe,CAClBiE,cAAe,kBAAM,OAHvBL,EAMKC,aAAe,CAClBE,QAAS,CACLK,QAAS,IAEbF,SAAS,GA2CjB,IAkCeG,EAlCYlE,kBACvBmE,EACA,CACIlE,QAAS,SAAA3C,GAAK,MAAK,CACf+C,OAAQ,SAACC,EAAD,GAA0C,IAAxB8D,EAAuB,EAA/BlE,KAAQkE,eAChB7G,EAAQ8F,EACR1C,EAAY,CAAE5C,GAAIqG,EAAeP,SACjC3D,EAAOI,EAAMC,UAAU,CAAEhD,QAAOoD,cAEtCT,EAAKqD,SAAL,2BACOrD,EAAKqD,UADZ,IAEI/E,SAAS,2BACF0B,EAAKqD,SAAS/E,UADb,IAEJC,MAAM,GAAD,mBACEyB,EAAKqD,SAAS/E,SAASC,MAAM+B,QAAO,SAAA6D,GAAC,OAAIA,EAAEC,YAAcF,EAAeE,cAD1E,CAEDF,QAKZ9D,EAAMG,WAAW,CAAElD,QAAO2C,YAGlC5C,MAAO,SAAAA,GAAK,MAAK,CACbwG,cAAe,SAACF,GACZ,OAAOtG,EAAMoD,OAAO,CAChBC,UAAU,eAAMiD,GAChBhD,mBAAoB,CAAEwD,eAAe,2BAAMR,GAAP,IAAgB/C,WAAY,UAAWyD,UAAWd,wBA3B/ExD,CAgCzByD,GCnFIc,E,4MAYFC,cAAgB,SAACZ,GACb,OACI,yBAAK5F,UAAU,UAAUC,IAAK2F,EAAQU,WAClC,yBAAKtG,UAAU,UAAS,uBAAGA,UAAU,wBACrC,yBAAKA,UAAU,WACX,yBAAKA,UAAU,QACV4F,EAAQK,SAEb,yBAAKjG,UAAU,YAAYG,IAAOyF,EAAQI,WAAW3F,OAAO,c,uDAhB5E,WACIc,KAAKsF,aAAetF,KAAK7B,MAAMoH,wB,kCAGnC,WACIvF,KAAKsF,iB,oBAiBT,WACI,MAAyCtF,KAAK7B,MAA1BmB,EAApB,EAAQD,SAAYC,MAASoF,EAA7B,EAA6BA,QAE7B,OACI,yBAAK7F,UAAU,YACX,yBAAKA,UAAU,QACX,yBAAKA,UAAU,eACX,wBAAIA,UAAU,sBAAd,YACC,GAAGuB,OAAOd,GAAOe,MAAK,SAACpC,EAAGqC,GAAJ,OAAUrC,EAAE4G,UAAUtE,cAAcD,EAAEuE,cAAYrE,IAAIR,KAAKqF,eAClF,kBAAC,EAAD,CAAYX,QAASA,W,GAnCjBjE,aAiFb+E,EArCe3E,kBAC1BqD,EACA,CACIpD,QAAS,kBAAsB,CAC3BvC,YAAa,cACbiD,UAAW,CAAE5C,GAFR,EAAG8F,WAIZvG,MAAO,SAAAA,GAAK,MAAK,CACbkB,SAAUlB,EAAM4C,KAAKqD,SAAWjG,EAAM4C,KAAKqD,SAAS/E,SAAW,CAAEC,MAAO,IACxEiG,oBAAqB,kBAAMpH,EAAM4C,KAAK0E,gBAAgB,CAClDC,SAAUC,EACVnE,UAAW,CACPkD,QAASvG,EAAMyH,SAASlB,SAE5BmB,YAAa,SAACC,EAAD,GAAyE,IAApCC,EAAmC,EAA/DC,iBAAoBjF,KAAQgF,yBAgB9C,OAfS,2BACFD,GADE,IAEL1B,SAAS,2BACF0B,EAAK1B,UADJ,IAEJ/E,SAAS,yBACLqC,WAAY,sBACToE,EAAK1B,SAAS/E,UAFb,IAGJC,MAAM,GAAD,mBACEwG,EAAK1B,SAAS/E,SAASC,MAAM+B,QAAO,SAAA6D,GAAC,OAAIA,EAAEC,YAAcY,EAAyBZ,cADpF,CAEDY,iBAxBNlF,CAmC5BuE,GChFIa,E,4JAEF,WACI,MAA2BjG,KAAK7B,MAAxBM,EAAR,EAAQA,MAAOmG,EAAf,EAAeA,QAEf,OACI,yBAAK/F,UAAS,kDAA6C+F,EAAU,UAAY,KAC7E,kBAAClG,EAAA,EAAD,CAAMC,GAAG,IAAIE,UAAU,aAAvB,kBACA,yBAAKA,UAAU,YACX,yBAAKA,UAAU,QACVJ,GAAS,yBAAKI,UAAU,WACrB,yBAAKA,UAAU,UAAUJ,EAAMM,MAC/B,yBAAKF,UAAU,SAAQ,uBAAGA,UAAU,kBAAqBG,IAAOP,EAAMQ,MAAMC,OAAO,OACnF,yBAAKL,UAAU,SAAQ,uBAAGA,UAAU,eAAkBG,IAAOP,EAAMQ,MAAMC,OAAO,OAChF,yBAAKL,UAAU,SAAQ,uBAAGA,UAAU,gBAAmBJ,EAAMU,OAC7D,yBAAKN,UAAU,eAAeJ,EAAMW,aACpC,yBAAKP,UAAU,SACX,kBAAC,EAAD,CAAe6F,QAASjG,EAAMG,GAAIS,SAAUZ,EAAMY,oB,GAjB1DoB,aA0CTyF,EAdWrF,kBACtBqD,EACA,CACIpD,QAAS,kBAAoC,CACzCU,UAAW,CAAE5C,GADR,EAAGuH,MAASC,OAAUxH,IAE3BL,YAAa,sBAEjBJ,MAAO,oBAAG4C,KAAH,MAA4C,CAC/CtC,MADG,EAAW2F,SAEdQ,QAFG,EAA4BA,WAPjB/D,CAYxBoF,GClCII,EAAO,kBACX,yBAAKxH,UAAU,gBACb,kBAAC,EAAD,QAIEyH,EAAM,kBACV,kBAAC,IAAD,KACE,6BACE,kBAACC,EAAA,EAAD,CAAOC,OAAO,EAAMC,KAAK,IAAIC,UAAWL,IACxC,kBAACE,EAAA,EAAD,CAAOE,KAAK,aAAaC,UAAWT,IACpC,kBAACM,EAAA,EAAD,CAAOE,KAAK,YAAYC,UAAWlE,OAKnCtE,EAAS,IAAIyI,IAAiB,CAClCC,IAAKC,EAAcC,4BACnBC,OAAQF,EAAcG,mBACtBC,KAAM,CACJ/D,KAAM2D,EAAcK,+BACpBC,OAAQN,EAAcO,oBAExBC,aAAc,CACZC,iBAAkB,SAACC,GACjB,IAAI3I,EAAK4I,kCAAwBD,GAEjC,IAAK3I,EAAI,CACP,IAAoB6I,EAAaF,EAAzB7F,WACR,OAAQ+F,GACN,IAAK,UACH,MAAM,GAAN,OAAUA,EAAV,YAAsBF,EAAIpC,WAC5B,QACE,OAAOvG,GAIb,OAAOA,MAaE8I,EARM,kBACnB,kBAAC,iBAAD,CAAgBxJ,OAAQA,GACtB,kBAAC,aAAD,KACE,kBAAC,EAAD,SClDAyJ,EAAcC,QACW,cAA7B/H,OAAOgI,SAASC,UAEe,UAA7BjI,OAAOgI,SAASC,UAEhBjI,OAAOgI,SAASC,SAAS3B,MACvB,2DA6BN,SAAS4B,EAAgBC,GACvBC,UAAUC,cACPC,SAASH,GACTI,MAAK,SAAAC,GACJA,EAAaC,cAAgB,WAC3B,IAAMC,EAAmBF,EAAaG,WACtCD,EAAiBE,cAAgB,WACA,cAA3BF,EAAiBzK,QACfmK,UAAUC,cAAcQ,WAK1BC,QAAQC,IAAI,6CAKZD,QAAQC,IAAI,4CAMrBC,OAAM,SAAAC,GACLH,QAAQG,MAAM,4CAA6CA,MChEjEC,IAASC,OAAO,kBAAC,EAAD,MAAStD,SAASuD,eAAe,SDclC,WACb,GAA6C,kBAAmBhB,UAAW,CAGzE,GADkB,IAAIiB,IAAIC,GAAwBtJ,OAAOgI,UAC3CuB,SAAWvJ,OAAOgI,SAASuB,OAIvC,OAGFvJ,OAAOwJ,iBAAiB,QAAQ,WAC9B,IAAMrB,EAAK,UAAMmB,GAAN,sBAEPxB,EAwCV,SAAiCK,GAE/BsB,MAAMtB,GACHI,MAAK,SAAAmB,GAGkB,MAApBA,EAASC,SACuD,IAAhED,EAASE,QAAQC,IAAI,gBAAgBC,QAAQ,cAG7C1B,UAAUC,cAAc0B,MAAMxB,MAAK,SAAAC,GACjCA,EAAawB,aAAazB,MAAK,WAC7BvI,OAAOgI,SAASiC,eAKpB/B,EAAgBC,MAGnBa,OAAM,WACLF,QAAQC,IACN,oEA5DAmB,CAAwB/B,GAGxBD,EAAgBC,OChCxBgC,K","file":"static/js/main.1b071813.chunk.js","sourcesContent":["// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_appsync_graphqlEndpoint\": \"https://kehusbddvjdzxoikkhrte4skze.appsync-api.ap-southeast-1.amazonaws.com/graphql\",\n \"aws_appsync_region\": \"ap-southeast-1\",\n \"aws_appsync_authenticationType\": \"API_KEY\",\n \"aws_appsync_apiKey\": \"da2-qw5ufx4nkrgi7cfdrxnjwsvzxm\",\n};\n\nexport default awsmobile;","import gql from \"graphql-tag\";\n\nexport default gql(`\nquery {\n listEvents(limit: 1000) {\n items {\n id\n name\n where\n when\n description\n comments {\n items {\n commentId\n }\n }\n }\n }\n}`);\n","import gql from \"graphql-tag\";\n\nexport default gql(`\nmutation($id: ID!) {\n deleteEvent(id: $id) {\n id\n name\n where\n when\n description\n comments {\n items {\n commentId\n }\n }\n }\n}`);\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { graphql, compose, withApollo } from \"react-apollo\";\nimport QueryAllEvents from \"../GraphQL/QueryAllEvents\";\nimport MutationDeleteEvent from \"../GraphQL/MutationDeleteEvent\";\n\nimport moment from \"moment\";\n\nclass AllEvents extends Component {\n\n state = {\n busy: false,\n }\n\n static defaultProps = {\n events: [],\n deleteEvent: () => null,\n }\n\n async handleDeleteClick(event, e) {\n e.preventDefault();\n\n if (window.confirm(`Are you sure you want to delete event ${event.id}`)) {\n const { deleteEvent } = this.props;\n\n await deleteEvent(event);\n }\n }\n\n handleSync = async () => {\n const { client } = this.props;\n const query = QueryAllEvents;\n\n this.setState({ busy: true });\n\n await client.query({\n query,\n fetchPolicy: 'network-only',\n });\n\n this.setState({ busy: false });\n }\n\n renderEvent = (event) => (\n \n
\n
{event.name}
\n
\n
\n

{moment(event.when).format('LL')}

\n

{moment(event.when).format('LT')}

\n

{event.where}

\n
\n
\n
{event.description}
\n
\n
\n {event.comments.items.length} comments\n
\n \n \n );\n\n render() {\n const { busy } = this.state;\n const { events } = this.props;\n\n return (\n
\n
\n

All Events

\n \n
\n
\n
\n \n \n

Create new event

\n \n
\n {[].concat(events).sort((a, b) => a.when.localeCompare(b.when)).map(this.renderEvent)}\n
\n
\n );\n }\n\n}\n\nexport default withApollo(compose(\n graphql(\n QueryAllEvents,\n {\n options: {\n fetchPolicy: 'cache-first',\n },\n props: ({ data: { listEvents = { items: [] } } }) => ({\n events: listEvents.items\n })\n }\n ),\n graphql(\n MutationDeleteEvent,\n {\n options: {\n update: (proxy, { data: { deleteEvent } }) => {\n const query = QueryAllEvents;\n const data = proxy.readQuery({ query });\n\n data.listEvents.items = data.listEvents.items.filter(event => event.id !== deleteEvent.id);\n\n proxy.writeQuery({ query, data });\n }\n },\n props: (props) => ({\n deleteEvent: (event) => {\n return props.mutate({\n variables: { id: event.id },\n optimisticResponse: () => ({\n deleteEvent: {\n ...event, __typename: 'Event', comments: { __typename: 'CommentConnection', items: [] }\n }\n }),\n });\n }\n })\n }\n )\n)(AllEvents));\n","import gql from \"graphql-tag\";\n\nexport default gql(`\nquery($id: ID!) {\n getEvent(id: $id) {\n id\n name\n where\n when\n description\n comments {\n __typename\n items {\n commentId\n content\n createdAt\n }\n }\n }\n}`);\n","import gql from \"graphql-tag\";\n\nexport default gql(`\nmutation($name: String! $when: String! $where: String! $description: String!) {\n createEvent(\n name: $name\n when: $when\n where: $where\n description: $description\n ) {\n id\n name\n where\n when\n description\n comments {\n items {\n commentId\n }\n }\n }\n}`);\n","import moment from 'moment';\n\nexport const nearestMinutes = (interval, someMoment) => {\n const roundedMinutes = Math.round(someMoment.clone().minute() / interval) * interval;\n return someMoment.clone().minute(roundedMinutes).second(0);\n}\n\nexport const nearest15min = () => nearestMinutes(15, moment.utc());\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport default class DateTimePickerCustomInput extends Component {\n\n render() {\n return (\n \n )\n }\n}\n\nDateTimePickerCustomInput.propTypes = {\n onClick: PropTypes.func,\n value: PropTypes.string,\n id: PropTypes.string,\n};\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { v4 as uuid } from \"uuid\";\nimport { graphql } from \"react-apollo\";\nimport QueryAllEvents from \"../GraphQL/QueryAllEvents\";\nimport QueryGetEvent from \"../GraphQL/QueryGetEvent\";\nimport MutationCreateEvent from \"../GraphQL/MutationCreateEvent\";\n\nimport DatePicker from 'react-datepicker';\nimport moment from 'moment';\n\nimport { nearest15min } from \"../Utils\";\nimport DateTimePickerCustomInput from \"./DateTimePickerCustomInput\";\n\nclass NewEvent extends Component {\n\n static defaultProps = {\n createEvent: () => null,\n }\n\n state = {\n event: {\n name: '',\n when: nearest15min().format(),\n where: '',\n description: '',\n }\n };\n\n handleChange(field, { target: { value } }) {\n const { event } = this.state;\n\n event[field] = value;\n\n this.setState({ event });\n }\n\n handleDateChange(field, value) {\n this.handleChange(field, { target: { value: value.format() } });\n }\n\n handleSave = async (e) => {\n e.stopPropagation();\n e.preventDefault();\n\n const { createEvent, history } = this.props;\n const { event } = this.state;\n\n await createEvent({ ...event });\n\n history.push('/');\n }\n\n render() {\n const { event } = this.state;\n\n return (\n
\n

Create an event

\n
\n
\n \n \n
\n
\n \n }\n id=\"when\"\n selected={moment(event.when)}\n onChange={this.handleDateChange.bind(this, 'when')}\n peekNextMonth\n showMonthDropdown\n showYearDropdown\n dropdownMode=\"select\"\n showTimeSelect\n timeFormat=\"hh:mm a\"\n timeIntervals={15}\n dateFormat=\"LL LT\"\n />\n
\n
\n \n \n
\n
\n \n \n
\n
\n Cancel\n
\n \n
\n
\n
\n );\n }\n\n}\n\nexport default graphql(\n MutationCreateEvent,\n {\n props: (props) => ({\n createEvent: (event) => {\n return props.mutate({\n update: (proxy, { data: { createEvent } }) => {\n // Update QueryAllEvents\n const query = QueryAllEvents;\n const data = proxy.readQuery({ query });\n\n data.listEvents.items = [...data.listEvents.items.filter(e => e.id !== createEvent.id), createEvent];\n\n proxy.writeQuery({ query, data });\n\n // Create cache entry for QueryGetEvent\n const query2 = QueryGetEvent;\n const variables = { id: createEvent.id };\n const data2 = { getEvent: { ...createEvent } };\n\n proxy.writeQuery({ query: query2, variables, data: data2 });\n },\n variables: event,\n optimisticResponse: () => ({\n createEvent: {\n ...event, id: uuid(), __typename: 'Event', comments: { __typename: 'CommentConnection', items: [] }\n }\n }),\n })\n }\n })\n }\n)(NewEvent);\n","import gql from \"graphql-tag\";\n\nexport default gql(`\nsubscription($eventId: String!) {\n subscribeToEventComments(eventId: $eventId) {\n eventId\n commentId\n content\n createdAt\n }\n}`);\n","import gql from \"graphql-tag\";\n\nexport default gql(`\nmutation MutationCommentOnEvent($eventId: ID! $content: String! $createdAt: String!) {\n commentOnEvent(\n eventId: $eventId\n content: $content\n createdAt: $createdAt\n ) {\n eventId\n commentId\n content\n createdAt\n }\n}`);\n","import React, { Component } from \"react\";\nimport { graphql } from \"react-apollo\";\nimport { v4 as uuid } from \"uuid\";\n\nimport MutationCommentOnEvent from \"../GraphQL/MutationCommentOnEvent\";\nimport QueryGetEvent from \"../GraphQL/QueryGetEvent\";\nimport moment from \"moment\";\n\nclass NewComment extends Component {\n\n static defaultProps = {\n createComment: () => null,\n }\n\n static defaultState = {\n comment: {\n content: '',\n },\n loading: false,\n };\n\n state = NewComment.defaultState;\n\n handleSubmit = async (e) => {\n e.stopPropagation();\n e.preventDefault();\n const { comment } = this.state;\n const { eventId, createComment } = this.props;\n\n this.setState({ loading: true });\n\n await createComment({\n ...comment,\n eventId,\n createdAt: moment.utc().format(),\n });\n\n this.setState(NewComment.defaultState);\n }\n\n handleChange = ({ target: { value: content } }) => {\n this.setState({ comment: { content } });\n }\n\n render() {\n const { comment, loading } = this.state;\n return (\n
\n
\n \n
\n \n
\n );\n }\n}\n\nconst NewCommentWithData = graphql(\n MutationCommentOnEvent,\n {\n options: props => ({\n update: (proxy, { data: { commentOnEvent } }) => {\n const query = QueryGetEvent;\n const variables = { id: commentOnEvent.eventId };\n const data = proxy.readQuery({ query, variables });\n\n data.getEvent = {\n ...data.getEvent,\n comments: {\n ...data.getEvent.comments,\n items: [\n ...data.getEvent.comments.items.filter(c => c.commentId !== commentOnEvent.commentId),\n commentOnEvent,\n ]\n }\n };\n\n proxy.writeQuery({ query, data });\n },\n }),\n props: props => ({\n createComment: (comment) => {\n return props.mutate({\n variables: { ...comment },\n optimisticResponse: { commentOnEvent: { ...comment, __typename: 'Comment', commentId: uuid() } },\n });\n }\n })\n }\n)(NewComment);\n\nexport default NewCommentWithData;","import React, { Component } from \"react\";\nimport { graphql } from \"react-apollo\";\n\nimport moment from 'moment';\n\nimport QueryGetEvent from \"../GraphQL/QueryGetEvent\";\nimport SubsriptionEventComments from \"../GraphQL/SubsriptionEventComments\";\n\nimport NewComment from \"./NewComment\";\n\nclass EventComments extends Component {\n\n subscription;\n\n componentDidMount() {\n this.subscription = this.props.subscribeToComments();\n }\n\n componentWillUnmount() {\n this.subscription();\n }\n\n renderComment = (comment) => {\n return (\n
\n
\n
\n
\n {comment.content}\n
\n
{moment(comment.createdAt).format('LL, LT')}
\n
\n
\n );\n }\n\n render() {\n const { comments: { items }, eventId } = this.props;\n\n return (\n
\n
\n
\n

Comments

\n {[].concat(items).sort((a, b) => a.createdAt.localeCompare(b.createdAt)).map(this.renderComment)}\n \n
\n
\n
\n );\n }\n\n}\n\nconst EventCommentsWithData = graphql(\n QueryGetEvent,\n {\n options: ({ eventId: id }) => ({\n fetchPolicy: 'cache-first',\n variables: { id }\n }),\n props: props => ({\n comments: props.data.getEvent ? props.data.getEvent.comments : { items: [] },\n subscribeToComments: () => props.data.subscribeToMore({\n document: SubsriptionEventComments,\n variables: {\n eventId: props.ownProps.eventId,\n },\n updateQuery: (prev, { subscriptionData: { data: { subscribeToEventComments } } }) => {\n const res = {\n ...prev,\n getEvent: {\n ...prev.getEvent,\n comments: {\n __typename: 'CommentConnections',\n ...prev.getEvent.comments,\n items: [\n ...prev.getEvent.comments.items.filter(c => c.commentId !== subscribeToEventComments.commentId),\n subscribeToEventComments,\n ]\n }\n }\n };\n\n return res;\n }\n })\n }),\n },\n)(EventComments);\n\nexport default EventCommentsWithData;","import React, { Component } from \"react\";\nimport { graphql } from \"react-apollo\";\nimport { Link } from \"react-router-dom\";\n\nimport moment from 'moment';\n\nimport QueryGetEvent from \"../GraphQL/QueryGetEvent\";\nimport EventComments from \"./EventComments\";\n\nclass ViewEvent extends Component {\n\n render() {\n const { event, loading } = this.props;\n\n return (\n
\n Back to events\n
\n
\n {event &&
\n
{event.name}
\n
{moment(event.when).format('LL')}
\n
{moment(event.when).format('LT')}
\n
{event.where}
\n
{event.description}
\n
\n \n
\n
}\n
\n
\n
\n );\n }\n\n}\n\nconst ViewEventWithData = graphql(\n QueryGetEvent,\n {\n options: ({ match: { params: { id } } }) => ({\n variables: { id },\n fetchPolicy: 'cache-and-network',\n }),\n props: ({ data: { getEvent: event, loading} }) => ({\n event,\n loading,\n }),\n },\n)(ViewEvent);\n\nexport default ViewEventWithData;","import React from 'react';\nimport { BrowserRouter as Router, Route } from 'react-router-dom';\nimport \"semantic-ui-css/semantic.min.css\";\nimport 'react-datepicker/dist/react-datepicker.css';\n\nimport appSyncConfig from \"./aws-exports\";\nimport { ApolloProvider } from \"react-apollo\";\nimport AWSAppSyncClient, { defaultDataIdFromObject } from \"aws-appsync\";\nimport { Rehydrated } from \"aws-appsync-react\";\n\nimport './App.css';\nimport AllEvents from './Components/AllEvents';\nimport NewEvent from './Components/NewEvent';\nimport ViewEvent from './Components/ViewEvent';\n\nconst Home = () => (\n
\n \n
\n);\n\nconst App = () => (\n \n
\n \n \n \n
\n
\n);\n\nconst client = new AWSAppSyncClient({\n url: appSyncConfig.aws_appsync_graphqlEndpoint,\n region: appSyncConfig.aws_appsync_region,\n auth: {\n type: appSyncConfig.aws_appsync_authenticationType,\n apiKey: appSyncConfig.aws_appsync_apiKey,\n },\n cacheOptions: {\n dataIdFromObject: (obj) => {\n let id = defaultDataIdFromObject(obj);\n\n if (!id) {\n const { __typename: typename } = obj;\n switch (typename) {\n case 'Comment':\n return `${typename}:${obj.commentId}`;\n default:\n return id;\n }\n }\n\n return id;\n }\n }\n});\n\nconst WithProvider = () => (\n \n \n \n \n \n);\n\nexport default WithProvider;\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\n\nReactDOM.render(, document.getElementById('root'));\nregisterServiceWorker();\n"],"sourceRoot":""}