{"version":3,"file":"js/application-e3ce58d4dae366dcea5a.js","mappings":"wGAAA,IAAIA,EAAM,CACT,2BAA4B,IAC5B,6BAA8B,IAC9B,6BAA8B,IAC9B,uBAAwB,IACxB,2CAA4C,IAC5C,6CAA8C,IAC9C,6CAA8C,IAC9C,uCAAwC,KAIzC,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,EAC5B,CACA,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,G,q+BC1BpB,MAGMY,EAAa,UAEbC,EAAeA,CAACC,EAAYC,I,+VAAcC,CAAA,CAC9CC,QAASC,EACTC,YAAa,OACbC,MAAO,OAEPR,WAAYE,EATC,OASqBF,EAClCS,QAAS,eACNN,GAGCO,EAAeC,IAAc,CACjCX,WAAYW,EAdE,UAcyBX,EACvCK,QAjBW,IAqBE,SAASO,EAAOC,GAC7B,OACEC,EAAAA,cAACC,EAAAA,GAAS,CAACC,YAAaH,EAAMI,KAAMA,KAAO,mBACxC,CAACC,EAAUC,IACVL,EAAAA,cAAA,OACEM,IAAKF,EAASG,SACdC,MAAOZ,EAAaS,EAASR,iBAE5BE,EAAMU,eAAetC,KAAI,CAACuC,EAAOC,IAChCX,EAAAA,cAACY,EAAAA,GAAS,CAACC,IAAKH,EAAMpC,GAAIwC,YAAa,IAAMJ,EAAMpC,GAAIqC,MAAOA,IAC3D,CAACP,EAAUC,IACVL,EAAAA,cAAA,OAAKQ,MAAO,CAAEb,QAAS,SACrBK,EAAAA,cAAA,MAAAe,EAAA,CACET,IAAKF,EAASG,UACVH,EAASY,eAAc,CAC3BR,MAAOrB,EACLkB,EAASjB,WACTgB,EAASY,eAAeR,SAG1BR,EAAAA,cAAA,OAAAe,EAAA,GACMX,EAASa,gBAAe,CAC5BT,MAAO,CACLb,QAAS,QACTuB,OAAQ,YAEX,gBAGDlB,EAAAA,cAAA,KAAGmB,UAAWpB,EAAMqB,UAAYV,EAAMpC,GAAK,UAAY,GAAI+C,KAAO,WAAUX,EAAMpC,WAChF0B,EAAAA,cAAA,QAAMmB,UAAU,aAAaT,EAAMY,MAAMC,OAAS,GAAKb,EAAMY,MAAME,UAAU,EAAE,IAAM,MAAQd,EAAMY,OACnGtB,EAAAA,cAAA,QAAMmB,UAAU,cAChBnB,EAAAA,cAAA,QAAMmB,UAAU,gBAAgBT,EAAMe,YAGzCrB,EAASsB,iBAKjBtB,EAASsB,cAKpB,C,yFCzDA,MAAMC,EAAcC,EAAAA,GAAYC,QAC1BC,EAAUC,EAAAA,KAChBJ,EAAYK,MAAKC,EAAAA,EAAAA,IAAuBH,IAEjC,MAAMI,EAAYH,EAAQ,KACjCG,EAAUL,O,mlCCbV,MAAMM,UAAqBxD,MACzByD,YAAYC,GACVC,QAEAC,KAAKC,KAAO,eACZD,KAAKF,QAAUA,EACfE,KAAKE,OAAQ,IAAI9D,OAAQ8D,KAC3B,EAGF,MAAMC,EAAsBC,IAC1B,IAAKA,EAASC,GAAI,CAChB,MAAMC,EAAQ,IAAIV,EAAaQ,EAASG,YAMxC,MAJIC,OAAOC,eACTD,OAAOC,cAAcC,OAAOJ,GAGxBA,CACR,CAEA,OAAOF,CAAQ,EAGXO,EAAYA,KAChB,MAAMC,EAAQC,SAASC,KAAKC,cAAc,qBACpCC,EAAQH,SAASC,KAAKC,cAAc,qBAE1C,GAAIH,GAASI,EACX,MAAO,CAAE,CAACJ,EAAMK,SAAUD,EAAMC,QAClC,EAgDIC,EAAUA,CAACC,EAAQC,EAAKC,IAC5BC,MAAMF,EAAK,CACTD,SACAI,YAAa,UACbC,KAAMC,KAAKC,UAAS3E,EAAAA,EAAC,CAAC,EACjB4D,KACAU,IAELM,QAAS,CACP,OAAU,mBACV,eAAgB,sBAEjBC,KAAKzB,GC5FV,OACE0B,OAAQA,CAAC9F,EAAI+F,ID8FmBZ,EAAQ,MC9FZ,UAASnF,SAAW,CAC9CgG,KAAMD,I,sGCDK,MAAAE,UAAcC,EAAAA,GAG3BC,UACElC,KAAKmC,QAAW,KAChBnC,KAAKoC,SAAW,GAClB,CAEAC,OACEC,aAAatC,KAAKmC,SAElBnC,KAAKmC,QAAUI,YAAW,KACxBvC,KAAKwC,aAAaC,YAAc,YAChC9C,EAAAA,EAAU+C,KAAK1C,KAAK2C,WAAY,SAAS,GACxC3C,KAAKoC,SACV,CAEAQ,UACE5C,KAAK6C,UAAU,SACjB,CAEAvC,QACEN,KAAK6C,UAAU,kBACjB,CAEAA,UAAU/C,GACRE,KAAKwC,aAAaC,YAAc3C,EAEhCE,KAAKmC,QAAUI,YAAW,KACxB,MAAMO,EAAWjC,SAASkC,eAAe,YAGvC/C,KAAKwC,aAAaC,YADH,MAAZK,EAC6B,cAEA,cAClC,GACC,IACL,EACDd,EArCQgB,QAAU,CAAE,OAAQ,S,6FCFd,MAAAhB,UAAcC,EAAAA,GAqB3BgB,UACEjD,KAAKkD,6BAA6BT,YAChCzC,KAAKmD,gBACJ,kBACDnD,KAAKoD,eACJ,iCACHpD,KAAKqD,8BAA8BZ,YACjCzC,KAAKsD,iBAAoB,UAC3BtD,KAAKuD,0BAA0Bd,YAC5B,OAAKzC,KAAKwD,aAAgB,WAC/B,CAEAC,YACEzD,KAAK0D,WACL1D,KAAK2D,WACL3D,KAAK4D,gBACP,CAEAC,WACE7D,KAAK8D,gBACL9D,KAAK+D,WACL/D,KAAKgE,YACLhE,KAAKiE,YACLjE,KAAKkE,cACLlE,KAAKmE,yBACLnE,KAAKoE,aACLpE,KAAKqE,wBACP,CAEIP,sBACF9D,KAAKsE,wBAAwBC,MAAS,GAAEvE,KAAKwE,YAC/C,CAEIH,+BACFrE,KAAKyE,4BAA4BC,UAAa,OAAG1E,KAAKwE,YACxD,CAEIN,oBACFlE,KAAK2E,2BAA2BD,UAAa,OAAG1E,KAAK4E,oBACvD,CAEIR,mBACFpE,KAAK6E,qBAAqBH,UAAa,OAAG1E,KAAK8E,kBAAkBC,QAC/D,IAEJ,CAEIhB,iBACF/D,KAAKgF,mBAAmBT,MAAS,GAAEvE,KAAKwD,cAC1C,CAEIQ,kBACFhE,KAAKiF,oBAAoBV,MAAS,GAAEvE,KAAKsD,kBAC3C,CAEII,iBACF1D,KAAKkF,mBAAmBR,UAAa,2BAAuB1E,KAAKwE,sCACpDxE,KAAK4E,kCACpB,CAEIX,kBACFjE,KAAKmF,yBAAyBC,UAAW,CAC3C,CAEIzB,iBACuB,GAArB3D,KAAKwD,aACPxD,KAAKqF,mBAAmB5C,YAAe,oBAAmBzC,KAAKsD,+CAEtDtD,KAAKsF,aAAe,EAC7BtF,KAAKqF,mBAAmB5C,YAAe,eAAczC,KAAKsD,mCAAgCtD,KAAKwD,+CAC9ExD,KAAK8E,gEAEtB9E,KAAKqF,mBAAmB5C,YAAe,eAAczC,KAAKsD,mCAAgCtD,KAAKwD,+CAC9ExD,KAAK8E,2EAE1B,CAEIlB,uBACuB,GAArB5D,KAAKwD,cAAqBxD,KAAKsF,aAAe,EAChDtF,KAAKuF,yBAAyBb,UAAa,yDACpB,EAArB1E,KAAKsF,cACLP,QAAQ,WAEV/E,KAAKuF,yBAAyBb,UAAa,4DAAwD1E,KAAKsF,oBAE5G,CAEInB,+BACuB,GAArBnE,KAAKwD,cAAqBxD,KAAKsF,aAAe,EAChDtF,KAAKwF,+BAA+Bd,UAAa,0CAC1B,EAArB1E,KAAKsF,cACLP,QAAQ,YAEV/E,KAAKwF,+BAA+Bd,UAAa,4CAAwC1E,KAAKsF,qBAElG,CAEInC,sBACF,OAAOnD,KAAKyF,sBAAsBlB,KACpC,CAEIjB,uBACF,OAAOtD,KAAK0F,uBAAuBnB,KACrC,CAEIf,mBACF,OAAOxD,KAAK2F,mBAAmBpB,KACjC,CAEIqB,oBACF,MAAO,CACLC,SAAU,KACVC,UAAW,KACXC,iBAAkB,EAClBC,aAAc,KAElB,CAEIC,gBACF,MAAO,CACLC,OAAQ,IACRF,aAAc,GAElB,CAEI5C,qBACF,MAGM+C,EAAqBnG,KAAKmD,gBAHV,EAOhBiD,GADyBD,EALC,EAGLE,KAAKC,KAAKH,EAAqB,KAFlC,EAMxB,OAAOE,KAAKE,MAAMH,EACpB,CAEII,4BAIF,OAFExG,KAAKmD,gBAAkBnD,KAAK4F,cAAwB,SACpD5F,KAAK4F,cAAyB,SAElC,CAEIa,wBAGF,OADEzG,KAAKwG,sBAAwBxG,KAAKiG,UAAkB,MAExD,CAEIS,oBAEF,OADsB1G,KAAKwG,sBAAwBxG,KAAKyG,mBACnC1B,QAAQ,EAC/B,CAEIP,iBACF,MAAMmC,EAAgB3G,KAAKwG,sBAAwBxG,KAAKsD,iBAGlDsD,EADJD,GAAiB3G,KAAK4F,cAAgC,iBAAI,KAE1Ce,EAAgB3G,KAAK4F,cAA4B,aAC7DiB,EAAe7G,KAAKyG,kBAAoBzG,KAAKsD,iBAInD,OAFmBsD,GADH5G,KAAKiG,UAAwB,aAAIY,IAG/B9B,QAAQ,EAC5B,CAEIH,yBACF,OAAQ5E,KAAKwE,WAAaxE,KAAKsD,kBAAkByB,QAAQ,EAC3D,CAEID,wBACF,OAAO9E,KAAKwD,aAAexD,KAAKsD,gBAClC,CAEIgC,mBACF,OAAQtF,KAAK8E,kBAAoB9E,KAAKwE,YAAYO,QAAQ,EAC5D,EACD/C,EAvMQgB,QAAU,CACf,kBACA,yBACA,mBACA,0BACA,eACA,sBACA,eACA,eACA,qBACA,2BACA,oBACA,eACA,gBACA,qBACA,uBACA,iBACA,wB,kFCfJ,wBAA6Bf,EAAAA,GAE3BC,UACE,MAAMrD,EAAWmB,KAAKqB,KAAKyF,IAAI,YACzBC,EAAa/G,KAAKqB,KAAKyF,IAAI,cAC3BE,EAAUhH,KAAKqB,KAAKyF,IAAI,WACxBG,EAAejH,KAAKqB,KAAKyF,IAAI,gBAC7BI,EAAalH,KAAKqB,KAAKyF,IAAI,cAEjCK,EAAAA,OAAgB1J,EAAAA,cAAC2J,EAAAA,EAAG,CAACJ,QAASA,EAASnI,SAAUA,EAAUkI,WAAYA,EAAYE,aAAcA,EAAcC,WAAYA,IAAelH,KAAKqH,QACjJ,CAEAC,aACEH,EAAAA,uBAAgCnH,KAAKqH,QACvC,E,uDClBF,wBAA6BpF,EAAAA,GACde,qBACT,MAAO,CAAC,WAAY,YAAa,aAAc,aACjD,CAEAuE,qBACE,GAA4C,SAAxCvH,KAAKwH,iBAAiBC,QAAQC,OAAmB,CACnD,IAAIC,EAAY,EAChB,MAAMC,EAAO5H,KAAK6H,eAAezB,SAC/B0B,MAAMC,KAAKH,GAAMhM,KAAIoM,IACrBA,EAAKP,QAAgB,OAAIzH,KAAKiI,kBAC1BD,EAAKE,UAAUC,SAAS,aAC1BR,GAAa,EACf,IAEF3H,KAAKoI,gBAAgB3F,YAAckF,CACrC,CACF,CAEAM,kBACE,MAAO,yBACT,CAEApG,OAAOwG,EAAKC,GACV,IAAIC,EAAWD,EAAIE,OAAOzM,GACtB0M,EAAW,IAAIC,SACnB,MAAM1H,EAAQH,SAAS8H,kBACrB,cACE,GAAG1H,QAEPwH,EAASG,OAAQ,QAAOL,KAAaF,GACrC/G,MAAMtB,KAAKqB,KAAKyF,IAAI,cAAe,CACjCtF,KAAMiH,EACNtH,OAAQ,MACRI,YAAa,UACbsH,SAAU,SACVlH,QAAS,CACP,eAAgBX,IAGtB,CAGA8H,YAAYC,GACV,IAAIpB,EAAYqB,SAAShJ,KAAKoI,gBAAgB3F,aAC1CsG,EAAMP,OAAON,UAAUC,SAAS,YAClCR,GAAa,EACb3H,KAAK6B,QAAO,EAAOkH,KAEnBpB,GAAa,EACb3H,KAAK6B,QAAO,EAAMkH,IAGhBpB,GAAa3H,KAAKwH,iBAAiBC,QAAQwB,MAC7CjJ,KAAKkJ,iBAAiBhB,UAAUiB,OAAO,YACvCnJ,KAAKkJ,iBAAiB9D,UAAW,IAEjCpF,KAAKkJ,iBAAiBhB,UAAUkB,IAAI,YACpCpJ,KAAKkJ,iBAAiB9D,UAAW,GAEnCpF,KAAKoI,gBAAgB3F,YAAckF,EACnCoB,EAAMP,OAAON,UAAUmB,OAAO,UAChC,CAEAnH,UACElC,KAAKuH,oBACP,E,uhEC9DJ,MAAM+B,EAAUA,CAAC1B,EAAM2B,EAAYC,KACjC,MAAMC,EAAS3B,MAAMC,KAAKH,GACnB8B,EAAuCC,EAA5BF,EAAOG,OAAOL,EAAY,GAAE,GAAhC,GAEd,OADAE,EAAOG,OAAOJ,EAAU,EAAGE,GACpBD,CAAM,EAGTI,EAAerJ,OAAOsJ,SAASC,SAI/BpN,EAAa,UAEbC,EAAeA,CAACC,EAAYC,I,+VAAcC,CAAA,CAC9CJ,WAAYE,EALC,OAKqBF,EAClCqN,WAAY,MACZC,YAAa,MACbC,cAAe,QACZpN,GAGCO,EAAeC,IAAc,CACjCX,WAAYW,EAZE,UAYyBX,IAGnCwN,EAAaA,CAACpD,EAAYjF,IAAUsI,EAAAA,EAAKvI,OAAOkF,EAAYjF,GAEnD,SAASsF,EAAI5J,GAC1B,MAAQqB,EAA4DrB,EAA5DqB,SAAUkI,EAAkDvJ,EAAlDuJ,WAAYC,EAAsCxJ,EAAtCwJ,QAASC,EAA6BzJ,EAA7ByJ,aAAcC,EAAe1J,EAAf0J,WAC/C7F,EAAOI,KAAK4I,MAAMpD,GAE8BqD,EAAAX,GAA5BY,EAAAA,EAAAA,UAAS,CAAEC,SAAUnJ,IAAO,GAA/CS,EAAKwI,EAAA,GAAEG,EAAQH,EAAA,GAyEtB,OACE7M,EAAAA,cAACiN,EAAAA,GAAe,CAACC,UAxEnB,SAAmBlB,GACjB,IAAKA,EAAOmB,YACV,OAGF,MAAMC,EAAcpB,EAAOqB,OAAO1M,MAC5B2M,EAAYtB,EAAOmB,YAAYxM,MACrC,GAAoB,qBAAhBqL,EAAO7L,KAA6B,CACtC,MAAM4M,EAAWlB,EAAQxH,EAAM0I,SAAUK,EAAaE,GAEtDN,EAAS,CAAED,aACXL,EAAWpD,EAAYyD,EAEzB,MAAO,GAAoB,mBAAhBf,EAAO7L,KAA2B,CAC3C,MAAMoN,EAASlJ,EAAM0I,SAASS,QAAO,CAACC,EAAKC,KACzCD,EAAIC,EAAQpP,IAAMoP,EAAQjN,eACnBgN,IACN,CAAC,GAEEE,EAAkBpC,SAASS,EAAOqB,OAAOnN,aACzC0N,EAAgBrC,SAASS,EAAOmB,YAAYjN,aAE5C2N,EAAeN,EAAOI,GACtBG,EAAaP,EAAOK,GAE1B,IAAIG,EAAc,IAAI1J,EAAM0I,UAE5B,GAAIY,IAAoBC,EAAe,CACrC,MAAMI,EAAkBnC,EACtBgC,EACAT,EACAE,GAEAS,EAAcA,EAAY5P,KAAIuP,IACxBA,EAAQpP,IAAMqP,IAChBD,EAAQjN,eAAiBuN,GAEtBN,KAGTV,EAAS,CACPD,SAAUgB,IAEZrB,EAAWpD,EAAYyE,EAEzB,KAAO,CACL,IAAIE,EAAkB,IAAIJ,GAC1B,MAAOK,EAAsDhC,EAAtC+B,EAAgB9B,OAAOiB,EAAa,GAAE,GAA1C,GAEnB,IAAIe,EAAgB,IAAIL,GAExBK,EAAchC,OAAOmB,EAAW,EAAGY,GAEnCH,EAAcA,EAAY5P,KAAIuP,IACxBA,EAAQpP,KAAOqP,EACjBD,EAAQjN,eAAiBwN,EAChBP,EAAQpP,KAAOsP,IACxBF,EAAQjN,eAAiB0N,GAEpBT,KAGTV,EAAS,CACPD,SAAUgB,IAEZrB,EAAWpD,EAAYyE,EAEzB,CACF,CACF,GAII/N,EAAAA,cAACC,EAAAA,GAAS,CAACC,YAAY,YAAYC,KAAK,qBACrC,CAACC,EAAUC,IACVL,EAAAA,cAAA,OACEM,IAAKF,EAASG,SACdC,MAAOZ,EAAaS,EAASR,iBAE7BG,EAAAA,cAAA,OAAKmB,UAAU,cACbnB,EAAAA,cAAA,KAAGqB,KAAO,UAASkI,SAAgBpI,UAAWiL,GAAiB,UAAS7C,SAAiB,UAAY,IAAI,QACvGvJ,EAAAA,cAAA,QAAMmB,UAAU,gBAAe,IAAEsI,EAAW,WAASF,KAGxDlF,EAAM0I,SAAS5O,KAAI,CAACuP,EAAS/M,IAC5BX,EAAAA,cAACY,EAAAA,GAAS,CAACC,IAAK6M,EAAQpP,GAAIwC,YAAa4M,EAAQpP,GAAIqC,MAAOA,IACzD,CAACP,EAAUC,IACVL,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAAe,EAAA,CACET,IAAKF,EAASG,UACVH,EAASY,eAAc,CAC3BR,MAAOrB,EACLkB,EAASjB,WACTgB,EAASY,eAAeR,SAG1BR,EAAAA,cAAA,OAAAe,EAAA,GACMX,EAASa,gBAAe,CAC5BT,MAAO,CACLb,QAAS,eACTuB,OAAQ,gBAEX,gBAIDlB,EAAAA,cAAA,QAAMmB,UAAU,kBACdnB,EAAAA,cAAA,KAAGmB,UAAWmI,GAAcoE,EAAQpP,IAAM8N,GAAiB,UAAS7C,SAAiB,UAAY,GAAIlI,KAAO,aAAYqM,EAAQpP,WAAYoP,EAAQlL,MACpJxC,EAAAA,cAAA,QAAMmB,UAAU,gBAAgBuM,EAAQjN,eAAec,OAAO,YAE/D+H,GAAcoE,EAAQpP,IACrB0B,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,SAAOG,KAAK,WAAW7B,GAAK,cAAaoP,EAAQpP,KAAM6C,UAAU,iBAAiBqB,KAAK,WACvFxC,EAAAA,cAAA,SAAOoO,QAAU,cAAaV,EAAQpP,KAAMgD,MAAM,kCAGtDtB,EAAAA,cAAA,QAAMmB,UAAWmI,GAAcoE,EAAQpP,GAAK,cAAgB,IAC1D0B,EAAAA,cAACF,EAAAA,EAAM,CACLW,eAAgBiN,EAAQjN,eACxBN,KAAMuN,EAAQpP,GACd8C,SAAUA,IAEZpB,EAAAA,cAAA,KAAGmB,UAAU,WAAWE,KAAO,0BAAyBqM,EAAQpP,MAAM0B,EAAAA,cAAA,QAAMmB,UAAU,YAAW,UAAc,oBAGlHf,EAASsB,iBAKjBtB,EAASsB,YACV1B,EAAAA,cAAA,KAAGmB,UAAU,WAAWE,KAAO,kCAAiCgD,EAAM0I,SAAS,GAAGzO,MAAM0B,EAAAA,cAAA,QAAMmB,UAAU,YAAW,UAAc,uBAM7I,C","sources":["webpack://make_our_book/./app/javascript/packs/controllers/ sync \\.js$","webpack://make_our_book/./app/javascript/packs/Pieces.js","webpack://make_our_book/./app/javascript/packs/application.js","webpack://make_our_book/./app/javascript/packs/lib/request.js","webpack://make_our_book/./app/javascript/packs/book.js","webpack://make_our_book/./app/javascript/packs/controllers/autosave_controller.js","webpack://make_our_book/./app/javascript/packs/controllers/calculator_controller.js","webpack://make_our_book/./app/javascript/packs/controllers/navigation_controller.js","webpack://make_our_book/./app/javascript/packs/controllers/todo_controller.js","webpack://make_our_book/./app/javascript/packs/nav.js"],"sourcesContent":["var map = {\n\t\"./autosave_controller.js\": 286,\n\t\"./calculator_controller.js\": 145,\n\t\"./navigation_controller.js\": 183,\n\t\"./todo_controller.js\": 376,\n\t\"packs/controllers/autosave_controller.js\": 286,\n\t\"packs/controllers/calculator_controller.js\": 145,\n\t\"packs/controllers/navigation_controller.js\": 183,\n\t\"packs/controllers/todo_controller.js\": 376\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 451;","import React from \"react\"\nimport { Droppable, Draggable } from \"react-beautiful-dnd\"\n\nconst grid = 2\nconst grey50 = \"#fff\"\nconst grey100 = \"#E8E6E1\"\nconst background = \"#faf9f7\"\n\nconst getItemStyle = (isDragging, draggableStyle) => ({\n padding: grid * 2,\n paddingLeft: \"14px\",\n width: \"100%\",\n\n background: isDragging ? grey50 : background,\n display: \"inline-flex\",\n ...draggableStyle\n})\n\nconst getListStyle = isDraggingOver => ({\n background: isDraggingOver ? grey100 : background,\n padding: grid\n})\n\n\nexport default function Pieces(props) {\n return (\n \n {(provided, snapshot) => (\n \n {props.ordered_pieces.map((piece, index) => (\n \n {(provided, snapshot) => (\n
\n \n \n ⋮⋮\n \n \n {piece.title.length > 30 ? piece.title.substring(0,30) + \"...\" : piece.title}\n \n {piece.metadata}\n \n
\n {provided.placeholder}\n \n )}\n
\n ))}\n {provided.placeholder}\n \n )}\n
\n )\n}\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\nimport { Application } from \"stimulus\"\nimport { definitionsFromContext } from \"stimulus/webpack-helpers\"\n\nconst application = Application.start()\nconst context = require.context(\"./controllers\", true, /\\.js$/)\napplication.load(definitionsFromContext(context))\n\nexport const rails_ujs = require(\"@rails/ujs\")\nrails_ujs.start()\n","import queryString from \"query-string\"\n\n// Custom RequestError class\n// Code from: https://stackoverflow.com/posts/35858868/revisions\nclass RequestError extends Error {\n constructor(message) {\n super()\n\n this.name = \"RequestError\"\n this.message = message\n this.stack = new Error().stack\n }\n}\n\nconst throwRequestFailure = response => {\n if (!response.ok) {\n const error = new RequestError(response.statusText)\n\n if (window.bugsnagClient) {\n window.bugsnagClient.notify(error)\n }\n\n throw error\n }\n\n return response\n}\n\nconst csrfToken = () => {\n const param = document.head.querySelector(\"[name=csrf-param]\")\n const token = document.head.querySelector(\"[name=csrf-token]\")\n\n if (param && token) {\n return { [param.content]: token.content }\n }\n}\n\nconst urlWithQueryString = (url, data) => {\n if (data) {\n return `${url}?${queryString.stringify(data, { arrayFormat: \"bracket\" })}`\n } else {\n return url\n }\n}\n\nconst toFormData = fields => {\n const formData = new FormData()\n\n Object\n .entries(fields)\n .forEach(([field, value]) => formData.append(field, value))\n\n return formData\n}\n\nexport const get = (url, data) => {\n return fetch(urlWithQueryString(url, data), {\n credentials: \"include\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(throwRequestFailure)\n}\n\nexport const getHtml = (url, data) => {\n return fetch(urlWithQueryString(url, data), {\n credentials: \"include\",\n redirect: \"manual\" // allow throwRequestFailure to bail out if a redirect is going to occur\n }).then(throwRequestFailure)\n}\n\nconst sendFormData = (method, url, data) =>\n fetch(url, {\n method,\n credentials: \"include\",\n body: toFormData({\n ...csrfToken(),\n ...data\n })\n }).then(throwRequestFailure)\n\nconst request = (method, url, data) =>\n fetch(url, {\n method,\n credentials: \"include\",\n body: JSON.stringify({\n ...csrfToken(),\n ...data\n }),\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(throwRequestFailure)\n\nexport const post = (url, data) => request(\"POST\", url, data)\nexport const put = (url, data) => request(\"PUT\", url, data)\nexport const del = (url) => request(\"DELETE\", url)\n\nexport const postFormData = (url, data) => sendFormData(\"POST\", url, data)\nexport const putFormData = (url, data) => sendFormData(\"PUT\", url, data)\n\nexport const handleFailedRequest = (handler) => {\n return (error) => {\n if (error instanceof RequestError) {\n handler(error)\n } else {\n throw error\n }\n }\n}\n","import { put } from \"./lib/request\"\n\nexport default {\n update: (id, state) => put(`/books/${id}/sort`, {\n book: state\n })\n}\n","import { Controller } from \"stimulus\"\nimport { rails_ujs } from \"packs/application.js\"\n\nexport default class extends Controller {\n static targets = [ \"form\", \"status\" ]\n\n connect() {\n this.timeout = null\n this.duration = 1000\n }\n\n save() {\n clearTimeout(this.timeout)\n\n this.timeout = setTimeout(() => {\n this.statusTarget.textContent = \"Saving...\"\n rails_ujs.fire(this.formTarget, 'submit')\n }, this.duration)\n }\n\n success() {\n this.setStatus(\"Saved!\")\n }\n\n error() {\n this.setStatus(\"Unable to save!\")\n }\n\n setStatus(message) {\n this.statusTarget.textContent = message\n\n this.timeout = setTimeout(() => {\n const autosave = document.getElementById(\"autosave\")\n\n if ( autosave != null ) {\n this.statusTarget.textContent = \"Autosave on\"\n } else {\n this.statusTarget.textContent = \"Autosave off\"\n }\n }, 2000)\n }\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"number_of_pages\",\n \"number_of_pages_output\",\n \"number_of_copies\",\n \"number_of_copies_output\",\n \"retail_price\",\n \"retail_price_output\",\n \"costs_output\",\n \"funds_output\",\n \"fundraising_output\",\n \"small_fundraising_output\",\n \"total_cost_output\",\n \"price_output\",\n \"copies_output\",\n \"show_button_output\",\n \"cost_per_book_output\",\n \"takings_output\",\n \"total_cost_gbp_output\",\n ];\n\n sliders() {\n this.number_of_pages_outputTarget.textContent =\n this.number_of_pages +\n ` sides (approx ` +\n this.total_children +\n ` children with two sides each)`;\n this.number_of_copies_outputTarget.textContent =\n this.number_of_copies + ` copies`;\n this.retail_price_outputTarget.textContent =\n `£` + this.retail_price + ` per copy`;\n }\n\n calculate() {\n this.costs_text;\n this.funds_text;\n this.fundraising_text;\n }\n\n checkout() {\n this.total_cost_text;\n this.price_text;\n this.copies_text;\n this.show_button;\n this.cost_per_book;\n this.smaller_fundraising_text;\n this.takings_text;\n this.total_cost_with_gbp_text;\n }\n\n get total_cost_text() {\n this.total_cost_outputTarget.value = `${this.total_cost}`;\n }\n\n get total_cost_with_gbp_text() {\n this.total_cost_gbp_outputTarget.innerHTML = `£${this.total_cost}`;\n }\n\n get cost_per_book() {\n this.cost_per_book_outputTarget.innerHTML = `£${this.user_cost_per_unit}`;\n }\n\n get takings_text() {\n this.takings_outputTarget.innerHTML = `£${this.suggested_takings.toFixed(\n 2\n )}`;\n }\n\n get price_text() {\n this.price_outputTarget.value = `${this.retail_price}`;\n }\n\n get copies_text() {\n this.copies_outputTarget.value = `${this.number_of_copies}`;\n }\n\n get costs_text() {\n this.costs_outputTarget.innerHTML = `The cost will be £${this.total_cost}.\n That's £${this.user_cost_per_unit} per copy.`;\n }\n\n get show_button() {\n this.show_button_outputTarget.disabled = false;\n }\n\n get funds_text() {\n if (this.retail_price == 0) {\n this.funds_outputTarget.textContent = `If you give away ${this.number_of_copies} copies,\n your cost is`;\n } else if (this.funds_raised < 1) {\n this.funds_outputTarget.textContent = `If you sell ${this.number_of_copies} copies for £${this.retail_price} each,\n you will take £${this.suggested_takings}. So after the cost of print, your costs are`;\n } else {\n this.funds_outputTarget.textContent = `If you sell ${this.number_of_copies} copies for £${this.retail_price} each,\n you will take £${this.suggested_takings}. So after paying for the printing, you will have raised`;\n }\n }\n\n get fundraising_text() {\n if (this.retail_price == 0 || this.funds_raised < 1) {\n this.fundraising_outputTarget.innerHTML = `
£${(\n this.funds_raised * -1\n ).toFixed(2)}
`;\n } else {\n this.fundraising_outputTarget.innerHTML = `
£${this.funds_raised}
`;\n }\n }\n\n get smaller_fundraising_text() {\n if (this.retail_price == 0 || this.funds_raised < 1) {\n this.small_fundraising_outputTarget.innerHTML = `-£${(\n this.funds_raised * -1\n ).toFixed(2)}`;\n } else {\n this.small_fundraising_outputTarget.innerHTML = `£${this.funds_raised}`;\n }\n }\n\n get number_of_pages() {\n return this.number_of_pagesTarget.value;\n }\n\n get number_of_copies() {\n return this.number_of_copiesTarget.value;\n }\n\n get retail_price() {\n return this.retail_priceTarget.value;\n }\n\n get printer_costs() {\n return {\n per_page: 0.023,\n per_cover: 1.35,\n shipping_percent: 6,\n handling_fee: 1.38,\n };\n }\n\n get our_costs() {\n return {\n markup: 0.36,\n handling_fee: 60,\n };\n }\n\n get total_children() {\n const prelims_pages = 6;\n const intro_pages_per_chapter = 6;\n const pages_per_child = 2;\n const pages_less_prelims = this.number_of_pages - prelims_pages;\n const number_of_chapters = Math.ceil(pages_less_prelims / 30);\n const chapter_intro_pages = number_of_chapters * intro_pages_per_chapter;\n const pages_of_contributions = pages_less_prelims - chapter_intro_pages;\n const children = pages_of_contributions / pages_per_child;\n return Math.round(children);\n }\n\n get printer_cost_per_unit() {\n const printer_cost_per_unit =\n this.number_of_pages * this.printer_costs[\"per_page\"] +\n this.printer_costs[\"per_cover\"];\n return printer_cost_per_unit;\n }\n\n get our_cost_per_unit() {\n const our_cost_per_unit =\n this.printer_cost_per_unit * this.our_costs[\"markup\"];\n return our_cost_per_unit;\n }\n\n get cost_per_unit() {\n const cost_per_unit = this.printer_cost_per_unit + this.our_cost_per_unit;\n return cost_per_unit.toFixed(2);\n }\n\n get total_cost() {\n const cost_of_print = this.printer_cost_per_unit * this.number_of_copies;\n const shipping_cost =\n cost_of_print * (this.printer_costs[\"shipping_percent\"] / 100);\n const printer_fee =\n shipping_cost + cost_of_print + this.printer_costs[\"handling_fee\"];\n const our_unit_fee = this.our_cost_per_unit * this.number_of_copies;\n const our_fee = this.our_costs[\"handling_fee\"] + our_unit_fee;\n const total_cost = printer_fee + our_fee;\n\n return total_cost.toFixed(2);\n }\n\n get user_cost_per_unit() {\n return (this.total_cost / this.number_of_copies).toFixed(2);\n }\n\n get suggested_takings() {\n return this.retail_price * this.number_of_copies;\n }\n\n get funds_raised() {\n return (this.suggested_takings - this.total_cost).toFixed(2);\n }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Controller } from \"stimulus\"\nimport Nav from \"../nav.js\"\n\nexport default class extends Controller {\n\n connect() {\n const piece_id = this.data.get(\"piece-id\")\n const section_id = this.data.get(\"section-id\")\n const book_id = this.data.get(\"book-id\")\n const initial_data = this.data.get(\"initial-data\")\n const book_title = this.data.get(\"book-title\")\n\n ReactDOM.render(