{"version":3,"file":"static/js/vendors-7cb5b7ac.2e0ec5de.js","mappings":"yGAIEA,EAAOC,QAAU,EAAjBD,O,o3BCaF,IAAME,EAAmBC,EAAAC,cAAc,CAAC,GAAD,SAEvBC,EAAAC,GAAA,IACdC,EAAAD,EAAAE,SACAC,EAAAH,EAAAI,cACAC,EAAAL,EAAAM,QACAC,EAAAP,EAAAQ,KAAAC,EAEkCZ,EAAAa,SAAwBH,GAAnDI,EAAAF,EAAA,GAAWG,EAAAH,EAAA,GACZI,EAAehB,EAAAiB,OAAsBP,GACrCR,EAAkBF,EAAAiB,OAAsB,MAE9CC,EAAMC,WAAU,WACdH,EAAaI,QAAUN,CAAA,GACtB,CAACA,IAAA,IAEEO,EAAsBrB,EAAAsB,aAAY,SAACnB,GAAA,IACjCH,EAAwB,UAET,SAAfG,EACJe,EACAd,GAAA,IAEME,EAAS,CACbiB,GAAIL,EAAaK,GACjBC,MAAON,EAAaM,MACpBC,SAAU,OAERrB,GAAgC,iBAAbA,KACrBE,EAAOmB,SAAWrB,GAEpBJ,EAAM0B,KAAKpB,GAETqB,MAAMC,QAAQV,EAAab,WAC3Ba,EAAab,SAASwB,OAAS,GAE/BX,EAAab,SAASyB,KAAI,SAAC9B,GACzBG,EAAaH,EAAOkB,EAAaK,GAAA,IAlBlB,CAsBRpB,GAENH,CAAA,GACN,IAEG+B,EAAsB/B,EAAAsB,aAC1B,SAACnB,GAAA,IACOH,EAAQG,EAAK6B,QAAO,SAAC7B,GAAA,OAAOA,EAAEsB,QAAA,OAEf,IAAjBzB,EAAM6B,OACR,MAAO,CACLN,GAAI,EACJlB,SAAU,GACVmB,MAAO,aAGPN,EAA8B,CAChCK,GAAIvB,EAAM,GAAGuB,GACbC,MAAOxB,EAAM,GAAGwB,MAChBnB,SAAU,WAGM,SAAZF,EACJH,EACAI,GAAA,IAEME,EAAW,MACjBN,EAAU8B,KAAI,SAAC3B,GACTA,EAAMsB,WAAarB,GAMrBE,EAASoB,KALM,CACbH,GAAIpB,EAAMoB,GACVC,MAAOrB,EAAMqB,MACbnB,SAAU,QAMQ,IAApBC,EAASuB,OAAA,KAEPI,EAAkBC,EACtB9B,EACA,CACEC,SAAAC,GAEF,UACAY,GAGFA,EAAee,EAEf3B,EAASwB,KAAI,SAACZ,GACZf,EAAUH,EAAWkB,EAAUK,GAAA,KA9BjB,CAkCRpB,EAAMH,EAAM,GAAGuB,IAElBL,CAAA,GAET,IAGIgB,EAAWlC,EAAAsB,aACf,SACEnB,EACAH,EACAkB,EACAd,QAAA,IADAc,IAAAA,EAAS,WAGLZ,EAAA6B,EAAA,GAAoB/B,GAEfY,EAAaI,SAAA,IACtBd,EAAoB2B,EAAM3B,IAEJiB,KAAOpB,EAAI,KAC1Be,GAAqB,YAAXA,EACb,OAAAiB,EAAA,GAAY7B,EAAsBN,GAAA,IAC/BkB,GAAqB,QAAXA,EACb,OAAAiB,EAAA,GACK7B,EACAN,EAAA,CACHK,SAAA,GAAA+B,OACK9B,EAAkBD,SACjBL,EAAKK,SAAWL,EAAKK,SAAW,UAGrCa,GAAqB,WAAXA,EACb,OAAAiB,EAAA,GACK7B,EACAN,EAAA,CACHK,SAAA,GAAA+B,OACK9B,EAAkBD,SAAS2B,QAAO,SAAC7B,GAAA,OACpCH,EAAKK,UACAL,EAAKK,SAASyB,KAAI,SAAC3B,GAAA,OAAMA,EAAEoB,EAAA,IAAIc,SAASlC,EAAMoB,IAC/CpB,CAAA,WAMTG,EAAkBD,SACrB,OAAOC,EAAA,IAEHE,EAA+BF,EAAkBD,SAASyB,KAC9D,SAAC1B,GAAA,OACQ8B,EAAS/B,EAAIH,EAAMkB,EAAQd,EAAA,WAAA+B,EAAA,GAKjC7B,EAAA,CACHD,SAAUG,GAAe,OAG7B,IAGI8B,EAAkBtC,EAAAsB,aACtB,SACEnB,EACAH,EACAkB,GAAA,IAEId,EAAA+B,EAAA,GAAoBjB,GAEfF,EAAaI,SAAA,IACtBhB,EAAoB6B,EAAM7B,IAEJmB,KAAOpB,EAAA,OAAAgC,EAAA,GAEtB/B,EAAA,CACHC,SAAA,GAAA+B,OAAchC,EAAkBC,SAAcL,GAAc,UAI3DI,EAAkBC,SACrB,OAAOD,EAAA,IAEHE,EAA+BF,EAAkBC,SAASyB,KAC9D,SAACZ,GAAA,OACQoB,EAAgBnC,EAAIH,EAAMkB,EAAA,WAAAiB,EAAA,GAKhC/B,EAAA,CACHC,SAAUC,GAAe,OAG7B,IAGIiC,EAAavC,EAAAsB,aACjB,SACEnB,EACAH,EACAkB,GAAA,IAEId,EAAA+B,EAAA,GAAoBjB,GAEfF,EAAaI,SAAA,IACtBhB,EAAoB6B,EAAM7B,IAEJmB,KAAOpB,EAAA,OAAAgC,EAAA,GAEtB/B,EACAJ,EAAA,CACHK,SAAA,GAAA+B,OACKhC,EAAkBC,SAAS2B,QAAO,SAAC7B,GAAA,OACpCH,GACKA,EAAa8B,KAAI,SAAC3B,GAAA,OAAMA,CAAA,IAAGkC,SAASlC,EAAMoB,KAC1CpB,CAAA,WAMRC,EAAkBC,SACrB,OAAOD,EAAA,IAEHE,EAA+BF,EAAkBC,SAASyB,KAC9D,SAACZ,GAAA,OACQqB,EAAWpC,EAAIH,EAAckB,EAAA,WAAAiB,EAAA,GAKnC/B,EAAA,CACHC,SAAUC,GAAe,OAG7B,IAGIkC,EAAsBxC,EAAAsB,aAC1B,SAACnB,EAAqBH,GAAA,IAChBkB,EAAAiB,EAAA,GAAenC,GAEVgB,EAAaI,SAAA,OAGT,SAAPpB,EACJkB,EACAd,EACAE,QAAA,IAAAA,IAAAA,EAAqB,QAEf2B,EAAA,GAAAG,OAAoC9B,GAAA,SAEtCF,GAAAA,EAAcmB,IAAIU,EAAMP,KAAKtB,EAAamB,IAE1CL,EAAYK,KAAOpB,EAAA,MACd,CAAEsC,OAAQrC,EAAcsC,KAAMT,GAAA,SAGlCf,IAAAA,EAAab,SAAU,MAAO,CAAEoC,OAAQ,KAAMC,KAAM,QAErDlC,EAGA,CAAEiC,OAAQ,KAAMC,KAAM,WAE1BxB,EAAYb,SAASyB,KAAI,SAAC3B,GAAA,IAClBC,EAAaJ,EAAKG,EAAOe,EAAae,GAClB,OAAtB7B,EAAWqC,SACbjC,EAASJ,EAAA,IAINI,CAAA,CA3BI,CAFbU,EAAee,EAAMf,GAgCiB,QAIxC,IAGIyB,EAAW3C,EAAAsB,aAAY,SAE3BnB,EACAH,GAAA,IAEIkB,EAAAiB,EAAA,GAAenC,GAEVgB,EAAaI,SAAA,OAGT,SAAPpB,EAAQkB,EAA6Bd,GAAA,GACrCc,EAAaK,KAAOpB,EAAA,OACfe,EAAA,SAEJA,IAAAA,EAAcb,SAAU,OAAO,SAEhCC,EAA6B,YAEjCY,EAAab,SAASyB,KAAI,SAAC3B,GAAA,IACnBe,EAAWlB,EAAKG,GACL,OAAbe,IAAmBZ,EAAOY,EAAA,IAIzBZ,CAAA,CAdI,CAFbY,EAAee,EAAMf,GAAA,GAsBpB,WAOHlB,EAAA4C,oBACEpC,GACA,iBACS,CACLD,cAAAD,EACAuC,SAAAF,EACAG,oBAAAN,EACAO,WAAAR,EACAS,SAAAd,EACAe,gBAAAX,EACAY,oBAAA7B,EACA8B,oBAAApB,EACApB,KAAMK,EAAaI,QAAA,GAGvB,CACEkB,EACAP,EACAG,EACAS,EACAH,EACAnB,EACAf,EACAiC,IAKFrB,EAAAkC,cAACrD,EAAiBsD,SAAA,CAChBC,MAAO,CACLC,gBAAArD,EACAsD,aAAAxC,EACAyC,UAAA3C,EACA4C,aAAA3C,EACAmC,oBAAA7B,EACA8B,oBAAApB,EACAiB,SAAAd,EACAa,WAAAR,EACAO,oBAAAN,EACAK,SAAAF,EACAgB,QA7CU,SAACxD,EAA2BH,GAAA,OACzBwC,EAAoBxC,GAA7B0C,KACIL,SAASlC,EAAA,IA8ClBC,EAAA,CAKA,IAAAiB,EAAAU,EAAAG,EAAAI,EAAAC,EAAAC,EAAAG,EAAAiB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAMC,EAAmB,kBAC9BvE,EAAAwE,WAAWzE,EAAA,EC1XA0E,EAAoB/D,EAAOgE,IAAArD,IAAAA,EAAAL,EAAA,ieAsBpB,SAACb,GAAA,OAAUA,EAAKwE,YAAcxE,EAAKwE,YAAc,SACvD,SAACxE,GAAA,OAAUA,EAAKyE,YAAczE,EAAKyE,YAAc,UAS3D,SAACzE,GAAA,OACDA,EAAM0E,YACNrE,EAAAsE,IAAA/C,IAAAA,EAAAf,EAAA,4aAWkBb,EAAMwE,YAAcxE,EAAMwE,YAAc,MAClDxE,EAAMyE,YAAczE,EAAMyE,YAAc,WC7CvCG,EAAiB,SAAA5E,GAAA,IAAGH,EAAAG,EAAA6E,KAAM5E,EAAAD,EAAAQ,KAAML,EAAAH,EAAA8E,KAAMhD,EAAA9B,EAAA+E,KAAA,OAC7CvD,MAAMC,QAAQ5B,IAASA,EAAK6B,OAE5BX,EAAAkC,cAACqB,EAAA,CACClD,GAAA,YAAgBnB,EAAKmB,GACrB4D,UAAW,yBACXN,aAAcvE,EAAKuE,WACnBD,YAAatE,EAAKsE,YAClBD,YAAarE,EAAKqE,aAEjB3E,EAAK8B,KAAI,SAAC3B,GAAA,OAEPe,EAAAkC,cAACgC,EAAA,CAAWF,KAAMjD,EAAMoD,IAAKlF,EAAKoB,GAAIZ,KAAMR,EAAM8E,KAAM3E,GAAA,KAM3D,MAAAgF,GAAA,SAAAnF,GCjBT,IAAIH,EAAW,SAAUG,GAGvB,IAAIH,EAAKuF,OAAOC,UACZtE,EAASlB,EAAGyF,eAEZrF,EAA4B,mBAAXsF,OAAwBA,OAAS,CAAC,EACnDpF,EAAiBF,EAAQuF,UAAY,aACrC1D,EAAsB7B,EAAQwF,eAAiB,kBAC/CpF,EAAoBJ,EAAQyF,aAAe,gBAE/C,SAASnF,EAAOP,EAAKH,EAAKkB,GAOxB,OANAqE,OAAOO,eAAe3F,EAAKH,EAAK,CAC9BsD,MAAOpC,EACP6E,YAAA,EACAC,cAAA,EACAC,UAAA,IAEK9F,EAAIH,EAAA,CAEb,IAEEU,EAAO,CAAC,EAAG,IACX,MAAOP,GACPO,EAAS,SAASP,EAAKH,EAAKkB,GAC1B,OAAOf,EAAIH,GAAOkB,CAAA,EAItB,SAASN,EAAKT,EAASH,EAASkB,EAAMd,GAEpC,IACIE,EAAYiF,OAAOW,QADFlG,GAAWA,EAAQwF,qBAAqBzE,EAAYf,EAAUe,GACtCyE,WACzCvD,EAAU,IAAI4B,EAAQzD,GAAe,IAMzC,OAFAE,EAAU6F,QAuMZ,SAA0BhG,EAASH,EAAMkB,GACvC,IAAId,EAhLuB,iBAkL3B,OAAO,SAAgBE,EAAQ2B,GAC7B,GAjLoB,cAiLhB7B,EACF,MAAM,IAAIgG,MAAM,gCAGlB,GApLoB,cAoLhBhG,EAA6B,CAC/B,GAAe,UAAXE,EACF,MAAM2B,EAKR,MAoQG,CAAEqB,WAAA,EAAkB+C,MAAA,EAAM,CA9P/B,IAHAnF,EAAQoF,OAAShG,EACjBY,EAAQqF,IAAMtE,IAED,CACX,IAAIzB,EAAWU,EAAQsF,SACvB,GAAIhG,EAAU,CACZ,IAAIE,EAAiB8B,EAAoBhC,EAAUU,GACnD,GAAIR,EAAgB,CAClB,GAAIA,IAAmByB,EAAkB,SACzC,OAAOzB,CAAA,EAIX,GAAuB,SAAnBQ,EAAQoF,OAGVpF,EAAQuF,KAAOvF,EAAQwF,MAAQxF,EAAQqF,SAElC,GAAuB,UAAnBrF,EAAQoF,OAAoB,CACrC,GApNqB,mBAoNjBlG,EAEF,MADAA,EAlNc,YAmNRc,EAAQqF,IAGhBrF,EAAQyF,kBAAkBzF,EAAQqF,IAAA,KAEN,WAAnBrF,EAAQoF,QACjBpF,EAAQ0F,OAAO,SAAU1F,EAAQqF,KAGnCnG,EA7NkB,YA+NlB,IAAIQ,EAASE,EAASX,EAASH,EAAMkB,GACrC,GAAoB,WAAhBN,EAAOiG,KAAmB,CAO5B,GAJAzG,EAAQc,EAAQmF,KAlOA,YAFK,iBAwOjBzF,EAAO2F,MAAQpE,EACjB,SAGF,MAAO,CACLmB,MAAO1C,EAAO2F,IACdF,KAAMnF,EAAQmF,KAAA,CAGS,UAAhBzF,EAAOiG,OAChBzG,EAhPgB,YAmPhBc,EAAQoF,OAAS,QACjBpF,EAAQqF,IAAM3F,EAAO2F,IAAA,GAxE7B,CAvMuCpG,EAASe,EAAMe,GAE7C3B,CAAA,CAcT,SAASQ,EAASX,EAAIH,EAAKkB,GACzB,IACE,MAAO,CAAE2F,KAAM,SAAUN,IAAKpG,EAAG2G,KAAK9G,EAAKkB,GAAA,CAC3C,MAAOf,GACP,MAAO,CAAE0G,KAAM,QAASN,IAAKpG,EAAA,EAhBjCA,EAAQ4G,KAAOnG,EAoBf,IAOIuB,EAAmB,CAAC,EAMxB,SAASpB,IAAA,CACT,SAASC,IAAA,CACT,SAASjB,IAAA,CAIT,IAAIG,EAAoB,CAAC,EACzBQ,EAAOR,EAAmBI,GAAgB,WACxC,OAAO0G,IAAA,IAGT,IAAI3F,EAAWkE,OAAO0B,eAClBlF,EAA0BV,GAAYA,EAASA,EAASyC,EAAO,MAC/D/B,GACAA,IAA4B/B,GAC5BkB,EAAO4F,KAAK/E,EAAyBzB,KAGvCJ,EAAoB6B,GAGtB,IAAIG,EAAKnC,EAA2ByF,UAClCzE,EAAUyE,UAAYD,OAAOW,OAAOhG,GAYtC,SAASoC,EAAsBnC,GAC7B,CAAC,OAAQ,QAAS,UAAU+G,SAAQ,SAASlH,GAC3CU,EAAOP,EAAWH,GAAQ,SAASG,GACjC,OAAO6G,KAAKb,QAAQnG,EAAQG,EAAA,OAkClC,SAASoC,EAAcpC,EAAWH,GAgChC,IAAII,EAgCJ4G,KAAKb,QA9BL,SAAiB7F,EAAQ2B,GACvB,SAASzB,IACP,OAAO,IAAIR,GAAY,SAASI,EAASI,IAnC7C,SAASJ,EAAOE,EAAQ2B,EAAKzB,EAASE,GACpC,IAAIE,EAASE,EAASX,EAAUG,GAASH,EAAW8B,GACpD,GAAoB,UAAhBrB,EAAOiG,KAEJ,CACL,IAAI1E,EAASvB,EAAO2F,IAChBxF,EAAQoB,EAAOmB,MACnB,OAAIvC,GACiB,iBAAVA,GACPG,EAAO4F,KAAK/F,EAAO,WACdf,EAAYmH,QAAQpG,EAAMqG,SAASC,MAAK,SAASlH,GACtDC,EAAO,OAAQD,EAAOK,EAASE,EAAA,IAC9B,SAASP,GACVC,EAAO,QAASD,EAAKK,EAASE,EAAA,IAI3BV,EAAYmH,QAAQpG,GAAOsG,MAAK,SAASlH,GAI9CgC,EAAOmB,MAAQnD,EACfK,EAAQ2B,EAAA,IACP,SAAShC,GAGV,OAAOC,EAAO,QAASD,EAAOK,EAASE,EAAA,IAvBzCA,EAAOE,EAAO2F,IAAA,CAHlB,CAoCajG,EAAQ2B,EAAK7B,EAASI,EAAA,IAIjC,OAAOJ,EAaLA,EAAkBA,EAAgBiH,KAChC7G,EAGAA,GACEA,GAAA,EAkHV,SAASgC,EAAoBrC,EAAUH,GACrC,IAAIkB,EAASf,EAASwF,SAAS3F,EAAQsG,QACvC,QAAI,IAAApF,EAAsB,CAKxB,GAFAlB,EAAQwG,SAAW,KAEI,UAAnBxG,EAAQsG,OAAoB,CAE9B,GAAInG,EAASwF,SAAiB2B,SAG5BtH,EAAQsG,OAAS,SACjBtG,EAAQuG,SAAA,EACR/D,EAAoBrC,EAAUH,GAEP,UAAnBA,EAAQsG,QAGV,OAAOnE,EAIXnC,EAAQsG,OAAS,QACjBtG,EAAQuG,IAAM,IAAIgB,UAChB,kDAGJ,OAAOpF,CAAA,CAGT,IAAI/B,EAASU,EAASI,EAAQf,EAASwF,SAAU3F,EAAQuG,KAEzD,GAAoB,UAAhBnG,EAAOyG,KAIT,OAHA7G,EAAQsG,OAAS,QACjBtG,EAAQuG,IAAMnG,EAAOmG,IACrBvG,EAAQwG,SAAW,KACZrE,EAGT,IAAI7B,EAAOF,EAAOmG,IAElB,OAAMjG,EAOFA,EAAK+F,MAGPrG,EAAQG,EAASqH,YAAclH,EAAKgD,MAGpCtD,EAAQyH,KAAOtH,EAASuH,QAQD,WAAnB1H,EAAQsG,SACVtG,EAAQsG,OAAS,OACjBtG,EAAQuG,SAAA,GAUZvG,EAAQwG,SAAW,KACZrE,GANE7B,GA3BPN,EAAQsG,OAAS,QACjBtG,EAAQuG,IAAM,IAAIgB,UAAU,oCAC5BvH,EAAQwG,SAAW,KACZrE,EAAA,CAoDX,SAASQ,EAAaxC,GACpB,IAAIH,EAAQ,CAAE2H,OAAQxH,EAAK,IAEvB,KAAKA,IACPH,EAAM4H,SAAWzH,EAAK,IAGpB,KAAKA,IACPH,EAAM6H,WAAa1H,EAAK,GACxBH,EAAM8H,SAAW3H,EAAK,IAGxB6G,KAAKe,WAAWrG,KAAK1B,EAAA,CAGvB,SAAS4D,EAAczD,GACrB,IAAIH,EAASG,EAAM6H,YAAc,CAAC,EAClChI,EAAO6G,KAAO,gBACP7G,EAAOuG,IACdpG,EAAM6H,WAAahI,CAAA,CAGrB,SAAS6D,EAAQ1D,GAIf6G,KAAKe,WAAa,CAAC,CAAEJ,OAAQ,SAC7BxH,EAAY+G,QAAQvE,EAAcqE,MAClCA,KAAKiB,OAAA,EAAM,CA8Bb,SAASnE,EAAO3D,GACd,GAAIA,EAAU,CACZ,IAAIH,EAAiBG,EAASG,GAC9B,GAAIN,EACF,OAAOA,EAAe8G,KAAK3G,GAG7B,GAA6B,mBAAlBA,EAASsH,KAClB,OAAOtH,EAGT,IAAK+H,MAAM/H,EAAS0B,QAAS,CAC3B,IAAIzB,GAAK,EAAG6B,EAAO,SAASjC,IAC1B,OAASI,EAAID,EAAS0B,QACpB,GAAIX,EAAO4F,KAAK3G,EAAUC,GAGxB,OAFAJ,EAAKsD,MAAQnD,EAASC,GACtBJ,EAAKqG,MAAA,EACErG,EAOX,OAHAA,EAAKsD,WAAA,EACLtD,EAAKqG,MAAA,EAEErG,CAAA,EAGT,OAAOiC,EAAKwF,KAAOxF,CAAA,EAKvB,MAAO,CAAEwF,KAAM1D,EAAA,CAIjB,SAASA,IACP,MAAO,CAAET,WAAA,EAAkB+C,MAAA,EAAM,CA+MnC,OA7mBArF,EAAkBwE,UAAYzF,EAC9BW,EAAOwB,EAAI,cAAenC,GAC1BW,EAAOX,EAA4B,cAAeiB,GAClDA,EAAkBmH,YAAczH,EAC9BX,EACAS,EACA,qBAaFL,EAAQiI,oBAAsB,SAASjI,GACrC,IAAIH,EAAyB,mBAAXG,GAAyBA,EAAOkI,YAClD,QAAOrI,IACHA,IAASgB,GAG2B,uBAAnChB,EAAKmI,aAAenI,EAAKsI,MAAA,EAIhCnI,EAAQoI,KAAO,SAASpI,GAQtB,OAPIoF,OAAOiD,eACTjD,OAAOiD,eAAerI,EAAQJ,IAE9BI,EAAOsI,UAAY1I,EACnBW,EAAOP,EAAQK,EAAmB,sBAEpCL,EAAOqF,UAAYD,OAAOW,OAAOhE,GAC1B/B,CAAA,EAOTA,EAAQuI,MAAQ,SAASvI,GACvB,MAAO,CAAEiH,QAASjH,EAAA,EAsEpBmC,EAAsBC,EAAciD,WACpC9E,EAAO6B,EAAciD,UAAWvD,GAAqB,WACnD,OAAO+E,IAAA,IAET7G,EAAQwI,cAAgBpG,EAKxBpC,EAAQyI,MAAQ,SAAS5I,EAASkB,EAASd,EAAME,EAAa2B,QAAA,IACxDA,IAAwBA,EAAc4G,SAE1C,IAAIrI,EAAO,IAAI+B,EACb3B,EAAKZ,EAASkB,EAASd,EAAME,GAC7B2B,GAGF,OAAO9B,EAAQiI,oBAAoBlH,GAC/BV,EACAA,EAAKiH,OAAOJ,MAAK,SAASlH,GACxB,OAAOA,EAAOkG,KAAOlG,EAAOmD,MAAQ9C,EAAKiH,MAAA,KAuKjDnF,EAAsBJ,GAEtBxB,EAAOwB,EAAI1B,EAAmB,aAO9BE,EAAOwB,EAAI5B,GAAgB,WACzB,OAAO0G,IAAA,IAGTtG,EAAOwB,EAAI,YAAY,WACrB,MAAO,wBAkCT/B,EAAQ2I,KAAO,SAAS3I,GACtB,IAAIH,EAAO,GACX,IAAK,IAAIkB,KAAOf,EACdH,EAAK0B,KAAKR,GAMZ,OAJAlB,EAAK+I,UAIE,SAAS7H,IACd,KAAOlB,EAAK6B,QAAQ,CAClB,IAAIzB,EAAMJ,EAAKgJ,MACf,GAAI5I,KAAOD,EAGT,OAFAe,EAAKoC,MAAQlD,EACbc,EAAKmF,MAAA,EACEnF,CAAA,CAQX,OADAA,EAAKmF,MAAA,EACEnF,CAAA,GAsCXf,EAAQ8I,OAASnF,EAMjBD,EAAQ2B,UAAY,CAClB6C,YAAaxE,EAEboE,MAAO,SAAS9H,GAcd,GAbA6G,KAAKkC,KAAO,EACZlC,KAAKS,KAAO,EAGZT,KAAKP,KAAOO,KAAKN,WAAA,EACjBM,KAAKX,MAAA,EACLW,KAAKR,SAAW,KAEhBQ,KAAKV,OAAS,OACdU,KAAKT,SAAA,EAELS,KAAKe,WAAWb,QAAQtD,IAEnBzD,EACH,IAAK,IAAIH,KAAQgH,KAEQ,MAAnBhH,EAAKmJ,OAAO,IACZjI,EAAO4F,KAAKE,KAAMhH,KACjBkI,OAAOlI,EAAKoJ,MAAM,MACrBpC,KAAKhH,QAAA,EAphBX,EA0hBFqJ,KAAM,WACJrC,KAAKX,MAAA,EAEL,IACIlG,EADY6G,KAAKe,WAAW,GACLC,WAC3B,GAAwB,UAApB7H,EAAW0G,KACb,MAAM1G,EAAWoG,IAGnB,OAAOS,KAAKsC,IAAA,EAGd3C,kBAAmB,SAASxG,GAC1B,GAAI6G,KAAKX,KACP,MAAMlG,EAGR,IAAIH,EAAUgH,KACd,SAAS5G,EAAOc,EAAKd,GAYnB,OAXAI,EAAOqG,KAAO,QACdrG,EAAO+F,IAAMpG,EACbH,EAAQyH,KAAOvG,EAEXd,IAGFJ,EAAQsG,OAAS,OACjBtG,EAAQuG,SAAA,KAGAnG,CAAA,CAGZ,IAAK,IAAIE,EAAI0G,KAAKe,WAAWlG,OAAS,EAAGvB,GAAK,IAAKA,EAAG,CACpD,IAAI2B,EAAQ+E,KAAKe,WAAWzH,GACxBE,EAASyB,EAAM+F,WAEnB,GAAqB,SAAjB/F,EAAM0F,OAIR,OAAOvH,EAAO,OAGhB,GAAI6B,EAAM0F,QAAUX,KAAKkC,KAAM,CAC7B,IAAIxI,EAAWQ,EAAO4F,KAAK7E,EAAO,YAC9BrB,EAAaM,EAAO4F,KAAK7E,EAAO,cAEpC,GAAIvB,GAAYE,EAAY,CAC1B,GAAIoG,KAAKkC,KAAOjH,EAAM2F,SACpB,OAAOxH,EAAO6B,EAAM2F,UAAA,GACf,GAAIZ,KAAKkC,KAAOjH,EAAM4F,WAC3B,OAAOzH,EAAO6B,EAAM4F,WAAA,MAGjB,GAAInH,GACT,GAAIsG,KAAKkC,KAAOjH,EAAM2F,SACpB,OAAOxH,EAAO6B,EAAM2F,UAAA,OAGjB,KAAIhH,EAMT,MAAM,IAAIwF,MAAM,0CALhB,GAAIY,KAAKkC,KAAOjH,EAAM4F,WACpB,OAAOzH,EAAO6B,EAAM4F,WAAA,KAU9BjB,OAAQ,SAASzG,EAAMH,GACrB,IAAK,IAAII,EAAI4G,KAAKe,WAAWlG,OAAS,EAAGzB,GAAK,IAAKA,EAAG,CACpD,IAAIE,EAAQ0G,KAAKe,WAAW3H,GAC5B,GAAIE,EAAMqH,QAAUX,KAAKkC,MACrBhI,EAAO4F,KAAKxG,EAAO,eACnB0G,KAAKkC,KAAO5I,EAAMuH,WAAY,CAChC,IAAI5F,EAAe3B,EACnB,OAIA2B,IACU,UAAT9B,GACS,aAATA,IACD8B,EAAa0F,QAAU3H,GACvBA,GAAOiC,EAAa4F,aAGtB5F,EAAe,MAGjB,IAAIzB,EAASyB,EAAeA,EAAa+F,WAAa,CAAC,EAIvD,OAHAxH,EAAOqG,KAAO1G,EACdK,EAAO+F,IAAMvG,EAETiC,GACF+E,KAAKV,OAAS,OACdU,KAAKS,KAAOxF,EAAa4F,WAClB1F,GAGF6E,KAAKuC,SAAS/I,EAAA,EAGvB+I,SAAU,SAASpJ,EAAQH,GACzB,GAAoB,UAAhBG,EAAO0G,KACT,MAAM1G,EAAOoG,IAcf,MAXoB,UAAhBpG,EAAO0G,MACS,aAAhB1G,EAAO0G,KACTG,KAAKS,KAAOtH,EAAOoG,IACM,WAAhBpG,EAAO0G,MAChBG,KAAKsC,KAAOtC,KAAKT,IAAMpG,EAAOoG,IAC9BS,KAAKV,OAAS,SACdU,KAAKS,KAAO,OACa,WAAhBtH,EAAO0G,MAAqB7G,IACrCgH,KAAKS,KAAOzH,GAGPmC,CAAA,EAGTqH,OAAQ,SAASrJ,GACf,IAAK,IAAIH,EAAIgH,KAAKe,WAAWlG,OAAS,EAAG7B,GAAK,IAAKA,EAAG,CACpD,IAAIkB,EAAQ8F,KAAKe,WAAW/H,GAC5B,GAAIkB,EAAM2G,aAAe1H,EAGvB,OAFA6G,KAAKuC,SAASrI,EAAM8G,WAAY9G,EAAM4G,UACtClE,EAAc1C,GACPiB,CAAA,GAKbsH,MAAS,SAAStJ,GAChB,IAAK,IAAIH,EAAIgH,KAAKe,WAAWlG,OAAS,EAAG7B,GAAK,IAAKA,EAAG,CACpD,IAAIkB,EAAQ8F,KAAKe,WAAW/H,GAC5B,GAAIkB,EAAMyG,SAAWxH,EAAQ,CAC3B,IAAIC,EAASc,EAAM8G,WACnB,GAAoB,UAAhB5H,EAAOyG,KAAkB,CAC3B,IAAIvG,EAASF,EAAOmG,IACpB3C,EAAc1C,EAAA,CAEhB,OAAOZ,CAAA,EAMX,MAAM,IAAI8F,MAAM,0BAGlBsD,cAAe,SAASvJ,EAAUH,EAAYkB,GAa5C,OAZA8F,KAAKR,SAAW,CACdb,SAAU7B,EAAO3D,GACjBqH,WAAYxH,EACZ0H,QAASxG,GAGS,SAAhB8F,KAAKV,SAGPU,KAAKT,SAAA,GAGApE,CAAA,GAQJhC,CAAA,CA9sBM,CAqtBgBA,EAAOL,SAGtC,IACE6J,mBAAqB3J,CAAA,CACrB,MAAOG,GAWmB,iBAAfyJ,WACTA,WAAWD,mBAAqB3J,EAEhC6J,SAAS,IAAK,yBAAdA,CAAwC7J,EAAA,EDvtBnC,CCutBmCsE,EAAA,CAAAxE,QAAA,KAAAwE,EAAAxE,SCvuB/BgK,EAAepJ,EAAOqJ,KAAA7H,IAAAA,EAAAlB,EAAA,iwBAUb,SAACb,GAAA,OACnBA,EAAK6J,sBAAwB7J,EAAK6J,sBAAwB,UAExD,SAAC7J,GAAA,OAAUA,EAAK8J,kBAAoB9J,EAAK8J,kBAAoB,UAuB3D,SAAC9J,GAAA,OAAUA,EAAK8J,kBAAoB9J,EAAK8J,kBAAoB,UAS7D,SAAC9J,GAAA,OAAUA,EAAK8J,kBAAoB9J,EAAK8J,kBAAoB,UAGjE,SAAC9J,GAAA,OACDA,EAAM+J,UACN1J,EAAAsE,IAAAxC,IAAAA,EAAAtB,EAAA,kEAMA,SAACb,GAAA,OACDA,EAAM0E,YACNrE,EAAAsE,IAAAvC,IAAAA,EAAAvB,EAAA,wGAQSmJ,EAAkBzJ,EAAOgE,IAAAlC,IAAAA,EAAAxB,EAAA,wWAiBlC,SAACb,GAAA,OACDA,EAAM0E,YACNrE,EAAAsE,IAAAnC,IAAAA,EAAA3B,EAAA,wGCxFSoJ,EAAY,SAAAjK,GAAA,IAAGH,EAAAG,EAAAkK,UAAWjK,EAAAD,EAAAmK,OAAQhK,EAAAH,EAAA8E,KACrChD,EAA6B3B,EAA7BuE,WAAYrE,EAAiBF,EAAjBiK,aAAA,OAEhB/J,EAEAU,EAAAkC,cAAC+G,EAAA,CAAgBtF,aAAc5C,GAC5BzB,EAAa,CACZgK,YAAapK,EACbqK,QAAS,SAACtK,GACRA,EAAMuK,kBACN1K,GAAWI,EAAA,KAOnBc,EAAAkC,cAAC0G,EAAA,CACCG,kBAAmB3J,EAAK2J,mBAAqB,GAC7CD,sBAAuB1J,EAAK0J,uBAAyB,GACrDnF,aAAc5C,EACdiI,SAAU9J,EACVqK,QAAS,SAACtK,GACRA,EAAEuK,kBACF1K,GAAWI,EAAA,KCxBNuK,EAAWjK,EAAOgE,IAAAd,IAAAA,EAAA5C,EAAA,mGAK3B,SAACb,GAAA,OACDA,EAAM0E,YACNrE,EAAAsE,IAAAjB,IAAAA,EAAA7C,EAAA,4EASS4J,EAAclK,EAAOgE,IAAAZ,IAAAA,EAAA9C,EAAA,8dAwB9B,SAACb,GAAA,OACDA,EAAM0K,YACNrK,EAAAsE,IAAAf,IAAAA,EAAA/C,EAAA,0CAKS8J,EAAoBpK,EAAOgE,IAAAV,IAAAA,EAAAhD,EAAA,yFAQ3B+J,EAAcrK,EAAOgE,IAAAT,IAAAA,EAAAjD,EAAA,uCAAAgK,EAAA,eC5CrBC,EAAa,SAAA9K,GAAA,IACxBG,EAAAH,EAAAQ,KACAsB,EAAA9B,EAAAkK,UACA7J,EAAAL,EAAAmK,OACA5J,EAAAP,EAAA+E,KAAAtE,EAAAT,EACA8E,KAAQjE,EAAAJ,EAAAsK,WAAenL,EAAAgB,EAAAH,EAAAoK,GAAA9K,EAUnBqE,IAPFlD,EAAAnB,EAAAwD,aACA3B,EAAA7B,EAAAsD,aACAtB,EAAAhC,EAAA8C,SACAV,EAAApC,EAAAyD,QACApB,EAAArC,EAAA4C,oBACAN,EAAAtC,EAAA2C,SACAF,EAAAzC,EAAAqD,gBAIIK,EAAQtD,EADDP,EAAKoL,KACM3J,OAClBqC,EAAM,CAAC,6BAETnD,GACFmD,EAAInC,KAAK,iBAAAoC,EAqDoB1D,EAAAgL,SAC7B,iBAAO,CACLvE,KAAM,MACNwE,KAAM/K,EACNgL,QAAS,CACPC,WAAY,QAEdC,QAAS,SAACrL,GAAA,MAAa,CACrB0K,aAAc1K,EAAQ0K,aAAA,KAG1B,IAXO9G,EAAAD,EAAA,GAAA+G,WAAc7G,EAAAF,EAAA,GAcvB9D,EAAAmB,WAAU,eACFhB,EAAWsL,SAASC,eAAA,aAA4BpL,EAAKiB,IACtDpB,IAMLA,EAASgF,UAAYpB,EACjB5D,EAASgF,UAAY,gBAHFhF,EAASgF,UAIbwG,QAAQ,gBAAiB,IAE5ChJ,EAAgBvB,QAAUd,EAAA,GAGzB,CAACyD,IAAA,IAiDIE,EClKiB,SACzB9D,GAEA,IAEMG,EAAMN,EAAAiB,OAAkC,eAAAgB,IAAA,OAAAA,EAAAnB,EAAAwE,EAAAiD,MAQ9C,SAAAvI,IAAA,IAAAkB,EAAAd,EAAA6B,EAAAzB,EAAAoL,UAAA,OAAAtG,EAAAyB,MAAA,SAAA/G,GAAA,cAAAA,EAAAkJ,KAAAlJ,EAAAyH,MAAA,WAAAvG,EAAAV,EAAAqB,OAA6BzB,EAAA,IAAAuB,MAAAT,GAAAe,EAAA,EAAAA,EAAAf,EAAAe,IAAA7B,EAAA6B,GAAAzB,EAAAyB,GAAA,IACvB3B,EAAIc,QAAA,CAAApB,EAAAyH,KAAA,eAAAzH,EAAAyH,KAAA,EACAoE,OAAOC,aAAaxL,EAAIc,SAAA,cAAApB,EAAAyH,KAAA,EAGVoE,OAAOE,YAAW,WACtC5L,EAAA6L,WAAA,EAAM5L,EAAA,GD+IsC,YC7I9CE,EAAIc,QAAApB,EAAAyG,KAAA,wBAAAzG,EAAAqJ,OAAA,GAAArJ,EAAA,MAAAgM,MAAA,KAAAJ,UAAA,QAdN5L,EAAAmB,WAAU,kBACD,WACDb,EAAIc,SAA+ByK,OAAOC,aAAaxL,EAAIc,QAAA,KAmB5D,CAAE6K,WAAA,kBAAAhK,EAAA+J,MAAA,KAAAJ,UAAA,EAAYM,gBAAA,WAHf5L,EAAIc,SAASyK,OAAOC,aAAaxL,EAAIc,QAAA,GAzBlB,EDmHL,SAACjB,GAAA,IACfH,EAAY,iBACZ2C,EAAgBvB,QAAS,KACrBF,EAAayB,EAAgBvB,QAAQG,GACrCnB,EAAUc,IAAeZ,EAAKiB,KAAOe,EAAQpB,EAAYZ,EAAKiB,IAAA,GACpEvB,EAAY2C,EAAgBvB,QAAQI,OAC/BpB,EAAS,QAvFG,SAACD,EAAqBH,GAAA,IAEnCkB,EAAoBuK,SAASC,eAAA,YAA2BvL,GAAA,GAC1De,EAAmB,KACfd,EAAmBqL,SAASC,eAAA,mBAC5BpL,EAAkBmL,SAASC,eAAA,sBAC5BtL,EAAkB,WAClBE,EAAiB,OAEtBF,EAAiB+L,UAAYnM,EAE7BM,EAAgB8L,MAAMC,QAAU,aAChC/L,EAAgBiB,GAAA,2BACVU,EAAA,MAAuB3B,OAAA,EAAAA,EAAiBgM,WAAA,GAC9ChM,EAAgB8L,MAAMC,QAAU,OAChC/L,EAAgBiB,GAAA,qBAEVf,EAA2ByB,EAAqBsK,UAAA,OACtD/L,GACEyB,EAAqBuK,YAAYhM,QAEnCU,EAAkBuL,YAAYxK,EAAA,KAK1BvB,EAAgB+K,SAASC,eAAA,aAA4BvL,GAAA,GACvDO,EAAe,KACXE,EAAmB6K,SAASC,eAAA,yBAC5B5K,EAAwB2K,SAASC,eAAA,qBAElC9K,EAAkB,WAClBE,EAAuB,OAE5BF,EAAiBuL,UAAYnM,EAAA,IAEvBmC,EAAYrB,EAAsBS,GACxCT,EAAsBS,GAAA,2BAChBR,EAAA,MAA6BD,OAAA,EAAAA,EAAuBwL,WAAA,GAC1DxL,EAAsBS,GAAKY,EAE3BzB,EAAc+L,YAAY1L,EAAA,EAzCT,CAyFNZ,EAAQH,EAAA,IAuCfiM,WAAA/H,EAEmB9D,EAAAsM,SACzB,iBAAO,CACLC,OAAQ,MACRC,QAAS,SAACzM,GAAA,OACRA,EAAKoB,KAAOjB,EAAKiB,KAAOe,EAAQnC,EAAKoB,GAAIjB,EAAKiB,GAAA,EAChDsL,KAAM,SAAC1M,GAAA,OAvCI,SAACA,GAAA,IACRH,EAAWwC,EAASrC,EAAKoB,IACzBL,EAAWZ,EAEDF,EAAmBmC,EAAoBpC,EAAKoB,IAApDkB,OAAA,GAEJrC,GAAkBJ,EAAU,KACxBiC,EAAAE,EAAA,GACD/B,EAAA,CACHC,SAAA,GAAA+B,OAAchC,EAAeC,SAAS2B,QAAO,SAAChC,GAAA,OAAMA,EAAEuB,KAAOpB,EAAKoB,EAAA,OAG9Df,EAA2B0B,EAC/B9B,EAAemB,GACfU,EACA,WAGIvB,EAAyBwB,EAC7BhB,EAASK,GACT,CACElB,SAAU,CAACL,IAEb,MACAQ,GAGFa,EAAaX,GACbqB,EAAaX,QAAUV,CAAA,EA5BZ,CAuC2BP,EAAA,EACtCqL,QAAS,SAACrL,GAAA,MAAa,CACrB2M,SAAU3M,EAAQ2M,SAAA,KAGtB,IAVO3I,EAAAD,EAAA,GAAA4I,OAAU1I,EAAAF,EAAA,UAanBlE,EAAAmB,WAAU,WAnDU,IA9CZhB,EAkGFgE,EAAQF,EAAW3D,EAAKiB,KAlGtBpB,EAAqBsL,SAASC,eAAA,0BACdvL,EAAmB4M,QAAA,GAoGxC,CAAC5I,IAGFjD,EAAAkC,cAACuH,EAAA,CACCpJ,GAAA,SAAajB,EAAKiB,GAClB8D,IAAA,SAAc/E,EAAKiB,GACnBsD,aAAc9E,EAAK8E,WACnBM,UAAW,sBACX6H,IAAK5I,EACLqG,QAAS,SAACtK,GAAA,MACgB,mBAAjBJ,EAAK0K,SAA0B1K,EAAK0K,QAAQtK,EAAGG,EAAA,GAGvDU,EACCE,EAAAkC,cAAC0H,EAAA,CAAkBzF,IAAA,eAAoB/E,EAAKiB,GAAMyL,IAAKhJ,GACpDhD,EAAW,CACV6J,WAAA9G,EACAvC,MAAAoC,EACAqJ,QAAA,cAAuB3M,EAAKiB,GAC5BZ,KAAAL,EACA4M,gBAAiBxM,IAElBX,EAAKoN,cAAgBC,EAAW9M,EAAMP,IACrCmB,EAAAkC,cAACgH,EAAA,CACCC,UAAWpI,EACXqI,OAAQ9J,EACRG,KAAML,EACN2E,KAAMlF,KAKZmB,EAAAkC,cAACwH,EAAA,CACCvF,IAAA,eAAoB/E,EAAKiB,GACzByL,IAAKhJ,EACL6G,WAAY9G,EACZoB,UAAWtB,EAAIwJ,KAAK,KACpBjB,MAAAjK,EAAA,GAAYpC,EAAKuN,UAAchN,EAAK8L,QAEpClL,EAAAkC,cAAC2H,EAAA,CAAYxJ,GAAA,cAAkBjB,EAAKiB,IAAOqC,GAC1C7D,EAAKoN,cAAgBC,EAAW9M,EAAMP,IACrCmB,EAAAkC,cAACgH,EAAA,CACCC,UAAWpI,EACXqI,OAAQ9J,EACRG,KAAML,EACN2E,KAAMlF,KAAA,EEpOPwN,EAAc7M,EAAOgE,IAAAR,IAAAA,EAAAlD,EAAA,uiCAmC1B,SAACb,GAAA,OAAUA,EAAKyE,YAAczE,EAAKyE,YAAc,UAMjD,SAACzE,GAAA,OAAUA,EAAKyE,YAAczE,EAAKyE,YAAc,UAcrD,SAACzE,GAAA,OACDA,EAAM0E,YACNrE,EAAAsE,IAAAX,IAAAA,EAAAnD,EAAA,o6BA2BQb,EAAMyE,YAAczE,EAAMyE,YAAc,OAMnBzE,EAAMyE,YAAczE,EAAMyE,YAAc,OAIzCzE,EAAMyE,YAAczE,EAAMyE,YAAc,WC3F3DQ,EAAa,SAAAjF,GAAA,IAAGC,EAAAD,EAAAQ,KAAML,EAAAH,EAAA8E,KAAMhD,EAAA9B,EAAAqN,MAAOhN,EAAAL,EAAA+E,KACxCxE,EAAOJ,EAAK6K,KACZvK,EAAM,CAAC,iBAAAE,EAEed,EAAAa,WACxBH,EAAK4J,UAAUlK,IAASA,EAAKM,EAAK4J,UAD/BnI,EAAArB,EAAA,GAAQC,EAAAD,EAAA,UAIfd,EAAAmB,WAAU,WACRJ,EAAUT,EAAKmN,UAAA,GACd,CAACnN,EAAKmN,YAELL,EAAWhN,EAAME,GACnBM,EAAIc,KAAK,WACApB,EAAK6M,cAAgBhL,GAC9BvB,EAAIc,KAAK,aAGPO,GAAOrB,EAAIc,KAAK,uBAGlBR,EAAAkC,cAACmK,EAAA,CACChM,GAAA,aAAiBnB,EAAKmB,GACtBsD,WAAYvE,EAAKuE,WACjBM,UAAWvE,EAAIyM,KAAK,KACpBzI,YAAatE,EAAKsE,YAClBD,YAAarE,EAAKqE,YAClByH,MAAmB,SAAZhM,EAAKmB,GAAgB,CAAE8K,QAAS,QAAW,CAAC,GAEnDnL,EAAAkC,cAAC6H,EAAA,CACCZ,UAAWtJ,EACXuJ,OAAQnI,EACRxB,KAAMP,EACN6E,KAAM3E,EACN4E,KAAM1E,MAELF,EAAK6M,aAAehL,IACrBjB,EAAAkC,cAAC2B,EAAA,CACCpE,KAAMP,EACN4E,KAAM5E,EAAKC,SACX4E,KAAM3E,EACN4E,KAAM1E,IAAA,ECzCH4M,EAAa,SAACjN,EAAWH,GAAA,IAC9BkB,EAAOlB,EAAKmL,KAAA,QAEhBxJ,MAAMC,QAAQzB,EAAKe,EAAKb,YAAcF,EAAKe,EAAKb,UAAUwB,OAAS,IAIjE6L,EAAY,CAChBnM,GAAI,OACJC,MAAO,QACPnB,SAAU,CAAC,CAAEkB,GAAI,aAAcC,MAAO,QAASnB,SAAU,MAG9CsN,EAAW,SAACxN,GAAA,IAAAH,EACDuE,IAAA,OAEpBrD,EAAAkC,cAAChD,EAAAwN,YAAA,CAAYC,QAASvN,EAAAwN,cACpB5M,EAAAkC,cAACgC,EAAA,CAAWzE,KAAAX,EAHRyD,UAGyBwB,KAAM9E,EAAOqN,OAAA,IAC1CtM,EAAAkC,cAACgC,EAAA,CAAWzE,KAAM+M,EAAWzI,KAAM9E,EAAO+E,MAAA,MCrBnC6I,GAAmBrN,EAAOgE,IAAAN,IAAAA,EAAApD,EAAA,+CAK1BgN,GAAUtN,EAAOgE,IAAAL,IAAAA,EAAArD,EAAA,kKAAAiN,GAAA,0DCHxBC,GACE,CACJ1M,MAAO,QACP8I,OAAQ,SACRjK,SAAU,YAAAP,EAAAA,QAIkBE,EAAAmO,YAC9B,SAAAhO,EASEC,GAAA,IAPEE,EAAAH,EAAAQ,KACAsB,EAAA9B,EAAAsK,QAAAjK,EAAAL,EACAgN,YAAAzM,OAAA,IAAAF,GAAAA,EAAAI,EAAAT,EACAsN,UAAA3M,OAAA,IAAAF,GAAAA,EAAAuB,EAAAhC,EACA0E,WAAA7D,OAAA,IAAAmB,GAAAA,EACGpC,EAAAgB,EAAAZ,EAAA8N,IAAA5M,EAIuCrB,EAAAa,SAAkBC,GAAvDiB,EAAAV,EAAA,GAAgBa,EAAAb,EAAA,GACjBiB,EAAO4L,GAEP3L,EAAgBvC,EAAAsB,aAAY,eAC1BnB,EAAWsL,SAASC,eAAA,YAA2BpL,EAAKiB,IAC5CW,GAAV/B,GAA4B,SAACA,GAAA,OAAoBA,CAAA,KAEpD,CAACG,EAAKiB,KAAA,OAGPL,EAAAkC,cAAClD,EAAA,CACCO,QAASL,EACTG,cAAegC,EACf5B,KAAML,GAENY,EAAAkC,cAAC2K,GAAA,CAAiBlJ,WAAY7D,GAC5BE,EAAAkC,cAAC4K,GAAA,CAAQnJ,WAAY7D,GACnBE,EAAAkC,cAACuK,EAAApI,OAAA6I,OAAA,CACCvJ,WAAY7D,EACZmK,KAAM7I,EACN6K,YAAazM,EACb+M,UAAW1L,EACX0I,QAAS,SAACtK,EAAGH,GAAA,OAAaiC,GAAWA,EAAQ9B,EAAGH,EAAA,GAC5CD,MAAA,IAAAD,EAAAA,QCzCK,iBAGd,CACLW,QAHcT,EAAAiB,OAAsB,O,iGCVxC,SAASoN,EAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAI3M,MAAMC,QAAQ0M,GAAM,OAAOC,EAAkBD,EAAM,CANhDE,CAAmBF,IAI7D,SAA0BG,GAAQ,GAAsB,oBAAX/I,QAAmD,MAAzB+I,EAAK/I,OAAOC,WAA2C,MAAtB8I,EAAK,cAAuB,OAAO9M,MAAM+M,KAAKD,EAAO,CAJxFE,CAAiBL,IAAQM,EAA4BN,IAE1H,WAAgC,MAAM,IAAI/G,UAAU,uIAAyI,CAF3DsH,EAAsB,CAQxJ,SAASC,EAAQC,EAAQC,GAAkB,IAAIlG,EAAOvD,OAAOuD,KAAKiG,GAAS,GAAIxJ,OAAO0J,sBAAuB,CAAE,IAAIC,EAAU3J,OAAO0J,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQlN,QAAO,SAAUmN,GAAO,OAAO5J,OAAO6J,yBAAyBL,EAAQI,GAAKpJ,UAAY,KAAK+C,EAAKpH,KAAKsK,MAAMlD,EAAMoG,EAAU,CAAE,OAAOpG,CAAM,CAEpV,SAASuG,EAAcC,GAAU,IAAK,IAAIrN,EAAI,EAAGA,EAAI2J,UAAU/J,OAAQI,IAAK,CAAE,IAAIsN,EAAS,MAAQ3D,UAAU3J,GAAK2J,UAAU3J,GAAK,CAAC,EAAGA,EAAI,EAAI6M,EAAQvJ,OAAOgK,IAAS,GAAIrI,SAAQ,SAAU7B,GAAOmK,EAAgBF,EAAQjK,EAAKkK,EAAOlK,GAAO,IAAKE,OAAOkK,0BAA4BlK,OAAOmK,iBAAiBJ,EAAQ/J,OAAOkK,0BAA0BF,IAAWT,EAAQvJ,OAAOgK,IAASrI,SAAQ,SAAU7B,GAAOE,OAAOO,eAAewJ,EAAQjK,EAAKE,OAAO6J,yBAAyBG,EAAQlK,GAAO,GAAI,CAAE,OAAOiK,CAAQ,CAEzf,SAASE,EAAgBG,EAAKtK,EAAK/B,GAAiK,OAApJ+B,KAAOsK,EAAOpK,OAAOO,eAAe6J,EAAKtK,EAAK,CAAE/B,MAAOA,EAAOyC,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB0J,EAAItK,GAAO/B,EAAgBqM,CAAK,CAIhN,SAASC,EAAetB,EAAKrM,GAAK,OAUlC,SAAyBqM,GAAO,GAAI3M,MAAMC,QAAQ0M,GAAM,OAAOA,CAAK,CAV3BuB,CAAgBvB,IAQzD,SAA+BA,EAAKrM,GAAK,IAAI6N,EAAY,MAAPxB,EAAc,KAAyB,oBAAX5I,QAA0B4I,EAAI5I,OAAOC,WAAa2I,EAAI,cAAe,GAAU,MAANwB,EAAY,OAAQ,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAGhJ,KAAKwH,KAAQ4B,GAAMH,EAAKD,EAAGrI,QAAQpB,QAAoB4J,EAAKvO,KAAKqO,EAAGzM,QAAYrB,GAAKgO,EAAKpO,SAAWI,GAA3DiO,GAAK,GAAkE,CAAE,MAAOE,GAAOD,GAAK,EAAMH,EAAKI,CAAK,CAAE,QAAU,IAAWF,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAR/bI,CAAsB/B,EAAKrM,IAAM2M,EAA4BN,EAAKrM,IAEnI,WAA8B,MAAM,IAAIsF,UAAU,4IAA8I,CAFvD+I,EAAoB,CAI7J,SAAS1B,EAA4BtO,EAAGiQ,GAAU,GAAKjQ,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAOiO,EAAkBjO,EAAGiQ,GAAS,IAAIpQ,EAAIoF,OAAOC,UAAUgL,SAAS1J,KAAKxG,GAAG8I,MAAM,GAAI,GAAiE,MAAnD,WAANjJ,GAAkBG,EAAE+H,cAAalI,EAAIG,EAAE+H,YAAYC,MAAgB,QAANnI,GAAqB,QAANA,EAAoBwB,MAAM+M,KAAKpO,GAAc,cAANH,GAAqB,2CAA2CsQ,KAAKtQ,GAAWoO,EAAkBjO,EAAGiQ,QAAzG,CAA7O,CAA+V,CAE/Z,SAAShC,EAAkBD,EAAKoC,IAAkB,MAAPA,GAAeA,EAAMpC,EAAIzM,UAAQ6O,EAAMpC,EAAIzM,QAAQ,IAAK,IAAII,EAAI,EAAG0O,EAAO,IAAIhP,MAAM+O,GAAMzO,EAAIyO,EAAKzO,IAAO0O,EAAK1O,GAAKqM,EAAIrM,GAAM,OAAO0O,CAAM,CAOtL,IAAIC,EAA8B,mBAAbC,EAAAA,EAA0BA,EAAAA,EAAWA,EAAAA,EAAAA,QAE/CC,EAAoB,oBACpBC,EAAiB,iBACjBC,EAAiB,iBACjBC,EAAiB,iBAYjBC,EAA6B,WACtC,IACIC,GADSvF,UAAU/J,OAAS,QAAsBuP,IAAjBxF,UAAU,GAAmBA,UAAU,GAAK,IAC1DyF,MAAM,KACzBC,EAAMH,EAAUtP,OAAS,EAAI,UAAUO,OAAO+O,EAAU9D,KAAK,OAAS8D,EAAU,GACpF,MAAO,CACLI,KAAMT,EACNU,QAAS,qBAAqBpP,OAAOkP,GAEzC,EACWG,EAA0B,SAAiCC,GACpE,MAAO,CACLH,KAAMR,EACNS,QAAS,uBAAuBpP,OAAOsP,EAAS,KAAKtP,OAAmB,IAAZsP,EAAgB,OAAS,SAEzF,EACWC,EAA0B,SAAiCC,GACpE,MAAO,CACLL,KAAMP,EACNQ,QAAS,wBAAwBpP,OAAOwP,EAAS,KAAKxP,OAAmB,IAAZwP,EAAgB,OAAS,SAE1F,EACWC,EAA2B,CACpCN,KAAMN,EACNO,QAAS,kBAaJ,SAASM,EAAaC,EAAMpF,GACjC,IAAIqF,EAA6B,2BAAdD,EAAKlL,MAAqC+J,EAAQmB,EAAMpF,GAC3E,MAAO,CAACqF,EAAcA,EAAe,KAAOd,EAA2BvE,GACzE,CACO,SAASsF,EAAcF,EAAMH,EAASF,GAC3C,GAAIQ,EAAUH,EAAKI,MACjB,GAAID,EAAUN,IAAYM,EAAUR,GAAU,CAC5C,GAAIK,EAAKI,KAAOT,EAAS,MAAO,EAAC,EAAOD,EAAwBC,IAChE,GAAIK,EAAKI,KAAOP,EAAS,MAAO,EAAC,EAAOD,EAAwBC,GAClE,KAAO,IAAIM,EAAUN,IAAYG,EAAKI,KAAOP,EAAS,MAAO,EAAC,EAAOD,EAAwBC,IAAe,GAAIM,EAAUR,IAAYK,EAAKI,KAAOT,EAAS,MAAO,EAAC,EAAOD,EAAwBC,GAAS,CAG7M,MAAO,EAAC,EAAM,KAChB,CAEA,SAASQ,EAAU5O,GACjB,OAAOA,OACT,CA4CO,SAAS8O,EAAqBC,GACnC,MAA0C,mBAA/BA,EAAMD,qBACRC,EAAMD,4BAC0B,IAAvBC,EAAMC,cACfD,EAAMC,YAIjB,CACO,SAASC,EAAeF,GAC7B,OAAKA,EAAMG,aAMJ7Q,MAAM6D,UAAUiN,KAAK3L,KAAKuL,EAAMG,aAAaE,OAAO,SAAU7L,GACnE,MAAgB,UAATA,GAA6B,2BAATA,CAC7B,MAPWwL,EAAM/C,UAAY+C,EAAM/C,OAAOqD,KAQ5C,CAKO,SAASC,EAAmBP,GACjCA,EAAMQ,gBACR,CAyBO,SAASC,IACd,IAAK,IAAIC,EAAOnH,UAAU/J,OAAQmR,EAAM,IAAIrR,MAAMoR,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC9ED,EAAIC,GAAQrH,UAAUqH,GAGxB,OAAO,SAAUZ,GACf,IAAK,IAAIa,EAAQtH,UAAU/J,OAAQsR,EAAO,IAAIxR,MAAMuR,EAAQ,EAAIA,EAAQ,EAAI,GAAIE,EAAQ,EAAGA,EAAQF,EAAOE,IACxGD,EAAKC,EAAQ,GAAKxH,UAAUwH,GAG9B,OAAOJ,EAAIP,MAAK,SAAUY,GAKxB,OAJKjB,EAAqBC,IAAUgB,GAClCA,EAAGrH,WAAM,EAAQ,CAACqG,GAAOjQ,OAAO+Q,IAG3Bf,EAAqBC,EAC9B,GACF,CACF,CA0GO,SAASiB,EAAWjS,GACzB,MAAa,YAANA,GAAyB,YAANA,GAAyB,YAANA,GAAyB,WAANA,GAAwB,kBAANA,GAAyB,iBAAiBoP,KAAKpP,EACnI,CAMO,SAASkS,EAAMlS,GACpB,MAAO,cAAcoP,KAAKpP,EAC5B,CCxUA,IAAImS,EAAY,CAAC,YACbC,EAAa,CAAC,QACdC,EAAa,CAAC,SAAU,OAAQ,YAAa,UAAW,SAAU,UAAW,cAAe,aAAc,cAAe,UACzHC,EAAa,CAAC,SAAU,WAAY,WAExC,SAAStF,EAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAI3M,MAAMC,QAAQ0M,GAAM,OAAOC,EAAkBD,EAAM,CANhDE,CAAmBF,IAI7D,SAA0BG,GAAQ,GAAsB,oBAAX/I,QAAmD,MAAzB+I,EAAK/I,OAAOC,WAA2C,MAAtB8I,EAAK,cAAuB,OAAO9M,MAAM+M,KAAKD,EAAO,CAJxFE,CAAiBL,IAAQM,EAA4BN,IAE1H,WAAgC,MAAM,IAAI/G,UAAU,uIAAyI,CAF3DsH,EAAsB,CAQxJ,SAASe,EAAetB,EAAKrM,GAAK,OAUlC,SAAyBqM,GAAO,GAAI3M,MAAMC,QAAQ0M,GAAM,OAAOA,CAAK,CAV3BuB,CAAgBvB,IAQzD,SAA+BA,EAAKrM,GAAK,IAAI6N,EAAY,MAAPxB,EAAc,KAAyB,oBAAX5I,QAA0B4I,EAAI5I,OAAOC,WAAa2I,EAAI,cAAe,GAAU,MAANwB,EAAY,OAAQ,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAGhJ,KAAKwH,KAAQ4B,GAAMH,EAAKD,EAAGrI,QAAQpB,QAAoB4J,EAAKvO,KAAKqO,EAAGzM,QAAYrB,GAAKgO,EAAKpO,SAAWI,GAA3DiO,GAAK,GAAkE,CAAE,MAAOE,GAAOD,GAAK,EAAMH,EAAKI,CAAK,CAAE,QAAU,IAAWF,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAR/bI,CAAsB/B,EAAKrM,IAAM2M,EAA4BN,EAAKrM,IAEnI,WAA8B,MAAM,IAAIsF,UAAU,4IAA8I,CAFvD+I,EAAoB,CAI7J,SAAS1B,EAA4BtO,EAAGiQ,GAAU,GAAKjQ,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAOiO,EAAkBjO,EAAGiQ,GAAS,IAAIpQ,EAAIoF,OAAOC,UAAUgL,SAAS1J,KAAKxG,GAAG8I,MAAM,GAAI,GAAiE,MAAnD,WAANjJ,GAAkBG,EAAE+H,cAAalI,EAAIG,EAAE+H,YAAYC,MAAgB,QAANnI,GAAqB,QAANA,EAAoBwB,MAAM+M,KAAKpO,GAAc,cAANH,GAAqB,2CAA2CsQ,KAAKtQ,GAAWoO,EAAkBjO,EAAGiQ,QAAzG,CAA7O,CAA+V,CAE/Z,SAAShC,EAAkBD,EAAKoC,IAAkB,MAAPA,GAAeA,EAAMpC,EAAIzM,UAAQ6O,EAAMpC,EAAIzM,QAAQ,IAAK,IAAII,EAAI,EAAG0O,EAAO,IAAIhP,MAAM+O,GAAMzO,EAAIyO,EAAKzO,IAAO0O,EAAK1O,GAAKqM,EAAIrM,GAAM,OAAO0O,CAAM,CAMtL,SAAS7B,EAAQC,EAAQC,GAAkB,IAAIlG,EAAOvD,OAAOuD,KAAKiG,GAAS,GAAIxJ,OAAO0J,sBAAuB,CAAE,IAAIC,EAAU3J,OAAO0J,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQlN,QAAO,SAAUmN,GAAO,OAAO5J,OAAO6J,yBAAyBL,EAAQI,GAAKpJ,UAAY,KAAK+C,EAAKpH,KAAKsK,MAAMlD,EAAMoG,EAAU,CAAE,OAAOpG,CAAM,CAEpV,SAASuG,EAAcC,GAAU,IAAK,IAAIrN,EAAI,EAAGA,EAAI2J,UAAU/J,OAAQI,IAAK,CAAE,IAAIsN,EAAS,MAAQ3D,UAAU3J,GAAK2J,UAAU3J,GAAK,CAAC,EAAGA,EAAI,EAAI6M,EAAQvJ,OAAOgK,IAAS,GAAIrI,SAAQ,SAAU7B,GAAOmK,EAAgBF,EAAQjK,EAAKkK,EAAOlK,GAAO,IAAKE,OAAOkK,0BAA4BlK,OAAOmK,iBAAiBJ,EAAQ/J,OAAOkK,0BAA0BF,IAAWT,EAAQvJ,OAAOgK,IAASrI,SAAQ,SAAU7B,GAAOE,OAAOO,eAAewJ,EAAQjK,EAAKE,OAAO6J,yBAAyBG,EAAQlK,GAAO,GAAI,CAAE,OAAOiK,CAAQ,CAEzf,SAASE,EAAgBG,EAAKtK,EAAK/B,GAAiK,OAApJ+B,KAAOsK,EAAOpK,OAAOO,eAAe6J,EAAKtK,EAAK,CAAE/B,MAAOA,EAAOyC,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB0J,EAAItK,GAAO/B,EAAgBqM,CAAK,CAEhN,SAASiE,EAAyBrE,EAAQsE,GAAY,GAAc,MAAVtE,EAAgB,MAAO,CAAC,EAAG,IAAkElK,EAAKpD,EAAnEqN,EAEzF,SAAuCC,EAAQsE,GAAY,GAAc,MAAVtE,EAAgB,MAAO,CAAC,EAAG,IAA2DlK,EAAKpD,EAA5DqN,EAAS,CAAC,EAAOwE,EAAavO,OAAOuD,KAAKyG,GAAqB,IAAKtN,EAAI,EAAGA,EAAI6R,EAAWjS,OAAQI,IAAOoD,EAAMyO,EAAW7R,GAAQ4R,EAASE,QAAQ1O,IAAQ,IAAaiK,EAAOjK,GAAOkK,EAAOlK,IAAQ,OAAOiK,CAAQ,CAFhN0E,CAA8BzE,EAAQsE,GAAuB,GAAItO,OAAO0J,sBAAuB,CAAE,IAAIgF,EAAmB1O,OAAO0J,sBAAsBM,GAAS,IAAKtN,EAAI,EAAGA,EAAIgS,EAAiBpS,OAAQI,IAAOoD,EAAM4O,EAAiBhS,GAAQ4R,EAASE,QAAQ1O,IAAQ,GAAkBE,OAAOC,UAAU0O,qBAAqBpN,KAAKyI,EAAQlK,KAAgBiK,EAAOjK,GAAOkK,EAAOlK,GAAQ,CAAE,OAAOiK,CAAQ,CAwB3e,IAAI6E,GAAwBhG,EAAAA,EAAAA,aAAW,SAAUiG,EAAMpH,GACrD,IAAI3M,EAAW+T,EAAK/T,SAGhBgU,EAAeC,EAFNV,EAAyBQ,EAAMZ,IAGxCe,EAAOF,EAAaE,KACpBC,EAAQZ,EAAyBS,EAAcZ,GAQnD,OANA7Q,EAAAA,EAAAA,qBAAoBoK,GAAK,WACvB,MAAO,CACLuH,KAAMA,EAEV,GAAG,CAACA,IAEgBE,EAAAA,cAAoBC,EAAAA,SAAU,KAAMrU,EAASgP,EAAcA,EAAc,CAAC,EAAGmF,GAAQ,CAAC,EAAG,CAC3GD,KAAMA,KAEV,IACAJ,EAAShM,YAAc,WAEvB,IAAIwM,EAAe,CACjBC,UAAU,EACVC,kBAAmBC,EAAAA,EACnBpD,QAASqD,IACTnD,QAAS,EACToD,UAAU,EACVC,SAAU,EACVC,uBAAuB,EACvBC,SAAS,EACTC,YAAY,EACZC,QAAQ,EACRC,sBAAsB,EACtBC,UAAW,KACXC,gBAAgB,EAChBC,WAAW,GAEbtB,EAASQ,aAAeA,EACxBR,EAASuB,UAAY,CAgBnBrV,SAAUsV,IAAAA,KASVhJ,OAAQgJ,IAAAA,SAAmBA,IAAAA,QAAkBA,IAAAA,SAK7CX,SAAUW,IAAAA,KAKVT,sBAAuBS,IAAAA,KAKvBR,QAASQ,IAAAA,KAMTP,WAAYO,IAAAA,KAKZN,OAAQM,IAAAA,KAKRL,qBAAsBK,IAAAA,KAKtB/D,QAAS+D,IAAAA,OAKTjE,QAASiE,IAAAA,OAMTV,SAAUU,IAAAA,OAKVf,SAAUe,IAAAA,KAOVd,kBAAmBc,IAAAA,KAKnBC,mBAAoBD,IAAAA,KAKpBE,iBAAkBF,IAAAA,KAMlBH,eAAgBG,IAAAA,KAKhBF,UAAWE,IAAAA,KAOXG,YAAaH,IAAAA,KAObI,YAAaJ,IAAAA,KAObK,WAAYL,IAAAA,KAgCZM,OAAQN,IAAAA,KASRO,eAAgBP,IAAAA,KAShBQ,eAAgBR,IAAAA,KAOhBS,QAAST,IAAAA,KAOTJ,UAAWI,IAAAA,MAwEb,IAAIU,EAAe,CACjBC,WAAW,EACXC,oBAAoB,EACpBC,cAAc,EACdC,cAAc,EACdC,cAAc,EACdC,cAAe,GACfC,eAAgB,IA+EX,SAAStC,IACd,IAAIE,EAAQ5I,UAAU/J,OAAS,QAAsBuP,IAAjBxF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE7EiL,EAAsBxH,EAAcA,EAAc,CAAC,EAAGsF,GAAeH,GACrE7H,EAASkK,EAAoBlK,OAC7BiI,EAAWiC,EAAoBjC,SAC/BC,EAAoBgC,EAAoBhC,kBACxCnD,EAAUmF,EAAoBnF,QAC9BE,EAAUiF,EAAoBjF,QAC9BoD,EAAW6B,EAAoB7B,SAC/BC,EAAW4B,EAAoB5B,SAC/Ba,EAAce,EAAoBf,YAClCC,EAAcc,EAAoBd,YAClCC,EAAaa,EAAoBb,WACjCC,EAASY,EAAoBZ,OAC7BC,EAAiBW,EAAoBX,eACrCC,EAAiBU,EAAoBV,eACrCP,EAAqBiB,EAAoBjB,mBACzCC,EAAmBgB,EAAoBhB,iBACvCL,EAAiBqB,EAAoBrB,eACrCC,EAAYoB,EAAoBpB,UAChCP,EAAwB2B,EAAoB3B,sBAC5CC,EAAU0B,EAAoB1B,QAC9BC,EAAayB,EAAoBzB,WACjCC,EAASwB,EAAoBxB,OAC7BC,EAAuBuB,EAAoBvB,qBAC3Cc,EAAUS,EAAoBT,QAC9Bb,EAAYsB,EAAoBtB,UAEhCuB,GAAaC,EAAAA,EAAAA,UAAQ,WACvB,ODtMG,SAAgCpK,GACrC,GAAIuF,EAAUvF,GACZ,OAAOpH,OAAOyR,QAAQrK,GAAQsK,QAAO,SAAUzW,EAAG0W,GAChD,IAAIC,EAAQvH,EAAesH,EAAO,GAC9BE,EAAWD,EAAM,GACjBE,EAAMF,EAAM,GAEhB,MAAO,GAAG/U,OAAOiM,EAAmB7N,GAAI,CAAC4W,GAAW/I,EAAmBgJ,GACzE,GAAG,IACFrV,QAAO,SAAUX,GAChB,OAAOiS,EAAWjS,IAAMkS,EAAMlS,EAChC,IAAGgM,KAAK,IAIZ,CCuLWiK,CAAuB3K,EAChC,GAAG,CAACA,IACA4K,GAAcR,EAAAA,EAAAA,UAAQ,WACxB,ODnPG,SAAiCpK,GACtC,OAAIuF,EAAUvF,GA0BL,CAAC,CAEN6K,YAAa,QACb7K,OA5BoBpH,OAAOyR,QAAQrK,GAAQ3K,QAAO,SAAUyV,GAC5D,IAAIC,EAAQ9H,EAAe6H,EAAO,GAC9BL,EAAWM,EAAM,GACjBL,EAAMK,EAAM,GAEZC,GAAK,EAYT,OAVKrE,EAAW8D,KAEdO,GAAK,GAGFhW,MAAMC,QAAQyV,IAASA,EAAIO,MAAMrE,KAEpCoE,GAAK,GAGAA,CACT,IAAGV,QAAO,SAAUY,EAAKC,GACvB,IAAIC,EAAQnI,EAAekI,EAAO,GAC9BV,EAAWW,EAAM,GACjBV,EAAMU,EAAM,GAEhB,OAAO1I,EAAcA,EAAc,CAAC,EAAGwI,GAAM,CAAC,EAAGrI,EAAgB,CAAC,EAAG4H,EAAUC,GACjF,GAAG,CAAC,KAQC1K,CACT,CCgNWqL,CAAwBrL,EACjC,GAAG,CAACA,IACAsL,IAAqBlB,EAAAA,EAAAA,UAAQ,WAC/B,MAAmC,mBAArBlB,EAAkCA,EAAmBqC,CACrE,GAAG,CAACrC,IACAsC,IAAuBpB,EAAAA,EAAAA,UAAQ,WACjC,MAAqC,mBAAvBnB,EAAoCA,EAAqBsC,CACzE,GAAG,CAACtC,IAMAwC,IAAUnX,EAAAA,EAAAA,QAAO,MACjBoX,IAAWpX,EAAAA,EAAAA,QAAO,MAGlBqX,GAAe1I,GADD2I,EAAAA,EAAAA,YAAWC,EAASnC,GACS,GAC3CoC,GAAQH,GAAa,GACrBI,GAAWJ,GAAa,GAExBhC,GAAYmC,GAAMnC,UAClBC,GAAqBkC,GAAMlC,mBAC3BoC,IAAsB1X,EAAAA,EAAAA,QAAyB,oBAAX4K,QAA0BA,OAAO+M,iBAAmBpD,GDpRrF,uBAAwB3J,QCsR3BgN,GAAgB,YAEbF,GAAoBvX,SAAWmV,IAClCxK,YAAW,WACLsM,GAASjX,UACCiX,GAASjX,QAAQuR,MAElB9Q,SACT6W,GAAS,CACP7R,KAAM,gBAERsR,MAGN,GAAG,IAEP,GAEAhX,EAAAA,EAAAA,YAAU,WAER,OADA0K,OAAOiN,iBAAiB,QAASD,IAAe,GACzC,WACLhN,OAAOkN,oBAAoB,QAASF,IAAe,EACrD,CACF,GAAG,CAACR,GAAU9B,GAAoB4B,GAAsBQ,KACxD,IAAIK,IAAiB/X,EAAAA,EAAAA,QAAO,IAExBgY,GAAiB,SAAwB5G,GACvC+F,GAAQhX,SAAWgX,GAAQhX,QAAQ8X,SAAS7G,EAAM/C,UAKtD+C,EAAMQ,iBACNmG,GAAe5X,QAAU,GAC3B,GAEAD,EAAAA,EAAAA,YAAU,WAMR,OALI+T,IACFzJ,SAASqN,iBAAiB,WAAYlG,GAAoB,GAC1DnH,SAASqN,iBAAiB,OAAQG,IAAgB,IAG7C,WACD/D,IACFzJ,SAASsN,oBAAoB,WAAYnG,GACzCnH,SAASsN,oBAAoB,OAAQE,IAEzC,CACF,GAAG,CAACb,GAASlD,KAEb/T,EAAAA,EAAAA,YAAU,WAKR,OAJKyT,GAAYa,GAAa2C,GAAQhX,SACpCgX,GAAQhX,QAAQ+X,QAGX,WAAa,CACtB,GAAG,CAACf,GAAS3C,EAAWb,IACxB,IAAIwE,IAAU9X,EAAAA,EAAAA,cAAY,SAAUtB,GAC9BoW,GACFA,EAAQpW,EAKZ,GAAG,CAACoW,IACAiD,IAAgB/X,EAAAA,EAAAA,cAAY,SAAU+Q,GACxCA,EAAMQ,iBAENR,EAAMiH,UACN5O,GAAgB2H,GAChB2G,GAAe5X,QAAU,GAAGgB,OAAOiM,EAAmB2K,GAAe5X,SAAU,CAACiR,EAAM/C,SAElFiD,EAAeF,IACjBxJ,QAAQ1B,QAAQ0N,EAAkBxC,IAAQhL,MAAK,SAAUsL,GACvD,IAAIP,EAAqBC,IAAWiD,EAApC,CAIA,IAAIiE,EAAY5G,EAAM9Q,OAClB4U,EAAe8C,EAAY,GD/chC,SAA0BnF,GAC/B,IAAIzB,EAAQyB,EAAKzB,MACbhG,EAASyH,EAAKzH,OACdiF,EAAUwC,EAAKxC,QACfF,EAAU0C,EAAK1C,QACfsD,EAAWZ,EAAKY,SAChBC,EAAWb,EAAKa,SAChBM,EAAYnB,EAAKmB,UAErB,SAAKP,GAAYrC,EAAM9Q,OAAS,GAAKmT,GAAYC,GAAY,GAAKtC,EAAM9Q,OAASoT,IAI1EtC,EAAMiF,OAAM,SAAU7F,GAC3B,IAEIyH,EADiB5J,EADDkC,EAAaC,EAAMpF,GACY,GACrB,GAI1B8M,EADkB7J,EADDqC,EAAcF,EAAMH,EAASF,GACG,GACrB,GAE5BgI,EAAenE,EAAYA,EAAUxD,GAAQ,KACjD,OAAOyH,GAAYC,IAAcC,CACnC,GACF,CCsb4CC,CAAiB,CACnDhH,MAAOA,EACPhG,OAAQmK,EACRlF,QAASA,EACTF,QAASA,EACTsD,SAAUA,EACVC,SAAUA,EACVM,UAAWA,IAGbmD,GAAS,CACPjC,aAAcA,EACdC,aAHiB6C,EAAY,IAAM9C,EAInCD,cAAc,EACd3P,KAAM,oBAGJiP,GACFA,EAAYzD,EArBd,CAuBF,IAAG5I,OAAM,SAAUzJ,GACjB,OAAOoZ,GAAQpZ,EACjB,GAEJ,GAAG,CAAC6U,EAAmBiB,EAAasD,GAAS9D,EAAsBwB,EAAYlF,EAASF,EAASsD,EAAUC,EAAUM,IACjHqE,IAAetY,EAAAA,EAAAA,cAAY,SAAU+Q,GACvCA,EAAMQ,iBACNR,EAAMiH,UACN5O,GAAgB2H,GAChB,IAAIwH,EAAWtH,EAAeF,GAE9B,GAAIwH,GAAYxH,EAAMG,aACpB,IACEH,EAAMG,aAAajH,WAAa,MAClC,CAAE,MAAOuO,GAAU,CASrB,OAJID,GAAY7D,GACdA,EAAW3D,IAGN,CACT,GAAG,CAAC2D,EAAYV,IACZyE,IAAgBzY,EAAAA,EAAAA,cAAY,SAAU+Q,GACxCA,EAAMQ,iBACNR,EAAMiH,UACN5O,GAAgB2H,GAEhB,IAAI2H,EAAUhB,GAAe5X,QAAQY,QAAO,SAAUsN,GACpD,OAAO8I,GAAQhX,SAAWgX,GAAQhX,QAAQ8X,SAAS5J,EACrD,IAGI2K,EAAYD,EAAQjG,QAAQ1B,EAAM/C,SAEnB,IAAf2K,GACFD,EAAQE,OAAOD,EAAW,GAG5BjB,GAAe5X,QAAU4Y,EAErBA,EAAQnY,OAAS,IAIrB6W,GAAS,CACP7R,KAAM,kBACN2P,cAAc,EACdC,cAAc,EACdC,cAAc,IAGZnE,EAAeF,IAAU0D,GAC3BA,EAAY1D,GAEhB,GAAG,CAAC+F,GAASrC,EAAaT,IACtB6E,IAAW7Y,EAAAA,EAAAA,cAAY,SAAUqR,EAAON,GAC1C,IAAIsE,EAAgB,GAChBC,EAAiB,GACrBjE,EAAMzL,SAAQ,SAAU6K,GACtB,IACIqI,EAAiBxK,EADDkC,EAAaC,EAAM+E,GACY,GAC/C0C,EAAWY,EAAe,GAC1BC,EAAcD,EAAe,GAG7BE,EAAkB1K,EADDqC,EAAcF,EAAMH,EAASF,GACG,GACjD+H,EAAYa,EAAgB,GAC5BC,EAAYD,EAAgB,GAE5BZ,EAAenE,EAAYA,EAAUxD,GAAQ,KAEjD,GAAIyH,GAAYC,IAAcC,EAC5B/C,EAAcjV,KAAKqQ,OACd,CACL,IAAIyI,EAAS,CAACH,EAAaE,GAEvBb,IACFc,EAASA,EAAOpY,OAAOsX,IAGzB9C,EAAelV,KAAK,CAClBqQ,KAAMA,EACNyI,OAAQA,EAAOxY,QAAO,SAAUhC,GAC9B,OAAOA,CACT,KAEJ,CACF,MAEKgV,GAAY2B,EAAc9U,OAAS,GAAKmT,GAAYC,GAAY,GAAK0B,EAAc9U,OAASoT,KAE/F0B,EAAczP,SAAQ,SAAU6K,GAC9B6E,EAAelV,KAAK,CAClBqQ,KAAMA,EACNyI,OAAQ,CAAC3I,IAEb,IACA8E,EAAcuD,OAAO,IAGvBxB,GAAS,CACP/B,cAAeA,EACfC,eAAgBA,EAChBF,aAAcE,EAAe/U,OAAS,EACtCgF,KAAM,aAGJoP,GACFA,EAAOU,EAAeC,EAAgBvE,GAGpCuE,EAAe/U,OAAS,GAAKsU,GAC/BA,EAAeS,EAAgBvE,GAG7BsE,EAAc9U,OAAS,GAAKqU,GAC9BA,EAAeS,EAAetE,EAElC,GAAG,CAACqG,GAAU1D,EAAU8B,EAAYlF,EAASF,EAASuD,EAAUgB,EAAQC,EAAgBC,EAAgBZ,IACpGkF,IAAWnZ,EAAAA,EAAAA,cAAY,SAAU+Q,GACnCA,EAAMQ,iBAENR,EAAMiH,UACN5O,GAAgB2H,GAChB2G,GAAe5X,QAAU,GAErBmR,EAAeF,IACjBxJ,QAAQ1B,QAAQ0N,EAAkBxC,IAAQhL,MAAK,SAAUsL,GACnDP,EAAqBC,KAAWiD,GAIpC6E,GAASxH,EAAON,EAClB,IAAG5I,OAAM,SAAUzJ,GACjB,OAAOoZ,GAAQpZ,EACjB,IAGF0Y,GAAS,CACP7R,KAAM,SAEV,GAAG,CAACgO,EAAmBsF,GAAUf,GAAS9D,IAEtCoF,IAAiBpZ,EAAAA,EAAAA,cAAY,WAG/B,GAAIqX,GAAoBvX,QAAxB,CACEsX,GAAS,CACP7R,KAAM,eAERoR,KAEA,IAAI0C,EAAO,CACT3F,SAAUA,EACVtC,MAAO6E,GAET1L,OAAO+O,mBAAmBD,GAAMtT,MAAK,SAAUwT,GAC7C,OAAOhG,EAAkBgG,EAC3B,IAAGxT,MAAK,SAAUsL,GAChBwH,GAASxH,EAAO,MAChB+F,GAAS,CACP7R,KAAM,eAEV,IAAG4C,OAAM,SAAUzJ,GDndlB,IAAiBqB,KCqdJrB,aDpdE8a,eAA4B,eAAXzZ,EAAEiH,MAAyBjH,EAAEkQ,OAASlQ,EAAE0Z,YCqdrE5C,GAAqBnY,GACrB0Y,GAAS,CACP7R,KAAM,kBD7cX,SAAyBxF,GAC9B,OAAOA,aAAayZ,eAA4B,kBAAXzZ,EAAEiH,MAA4BjH,EAAEkQ,OAASlQ,EAAE2Z,aAClF,CC6cmBC,CAAgBjb,GAWzBoZ,GAAQpZ,IAVR2Y,GAAoBvX,SAAU,EAG1BiX,GAASjX,SACXiX,GAASjX,QAAQkC,MAAQ,KACzB+U,GAASjX,QAAQ8Z,SAEjB9B,GAAQ,IAAIhT,MAAM,kKAKxB,GAEF,MAEIiS,GAASjX,UACXsX,GAAS,CACP7R,KAAM,eAERoR,KACAI,GAASjX,QAAQkC,MAAQ,KACzB+U,GAASjX,QAAQ8Z,QAErB,GAAG,CAACxC,GAAUT,GAAoBE,GAAsB3C,EAAgB2E,GAAUf,GAAS7B,EAAavC,IAEpGmG,IAAc7Z,EAAAA,EAAAA,cAAY,SAAU+Q,GAEjC+F,GAAQhX,SAAYgX,GAAQhX,QAAQga,YAAY/I,EAAM/C,UAIzC,MAAd+C,EAAMhN,KAA6B,UAAdgN,EAAMhN,KAAqC,KAAlBgN,EAAMgJ,SAAoC,KAAlBhJ,EAAMgJ,UAC9EhJ,EAAMQ,iBACN6H,MAEJ,GAAG,CAACtC,GAASsC,KAETY,IAAYha,EAAAA,EAAAA,cAAY,WAC1BoX,GAAS,CACP7R,KAAM,SAEV,GAAG,IACC0U,IAAWja,EAAAA,EAAAA,cAAY,WACzBoX,GAAS,CACP7R,KAAM,QAEV,GAAG,IAEC2U,IAAYla,EAAAA,EAAAA,cAAY,WACtB6T,KDloBD,WACL,IAAIsG,EAAY7P,UAAU/J,OAAS,QAAsBuP,IAAjBxF,UAAU,GAAmBA,UAAU,GAAKC,OAAO6P,UAAUD,UACrG,OAVF,SAAcA,GACZ,OAAsC,IAA/BA,EAAU1H,QAAQ,UAAqD,IAAnC0H,EAAU1H,QAAQ,WAC/D,CAQS4H,CAAKF,IANd,SAAgBA,GACd,OAAuC,IAAhCA,EAAU1H,QAAQ,QAC3B,CAI4B6H,CAAOH,EACnC,CCsoBQI,GAGFnB,KAFA3O,WAAW2O,GAAgB,GAI/B,GAAG,CAACvF,EAASuF,KAEToB,GAAiB,SAAwBzI,GAC3C,OAAOuB,EAAW,KAAOvB,CAC3B,EAEI0I,GAAyB,SAAgC1I,GAC3D,OAAO+B,EAAa,KAAO0G,GAAezI,EAC5C,EAEI2I,GAAqB,SAA4B3I,GACnD,OAAOgC,EAAS,KAAOyG,GAAezI,EACxC,EAEI3I,GAAkB,SAAyB2H,GACzCiD,GACFjD,EAAM3H,iBAEV,EAEIuR,IAAelF,EAAAA,EAAAA,UAAQ,WACzB,OAAO,WACL,IAAIU,EAAQ7L,UAAU/J,OAAS,QAAsBuP,IAAjBxF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EsQ,EAAezE,EAAM0E,OACrBA,OAA0B,IAAjBD,EAA0B,MAAQA,EAC3CE,EAAO3E,EAAM2E,KACbC,EAAY5E,EAAM4E,UAClBC,EAAU7E,EAAM6E,QAChBC,EAAS9E,EAAM8E,OACf9R,EAAUgN,EAAMhN,QAChBqL,EAAc2B,EAAM3B,YACpBE,EAAayB,EAAMzB,WACnBD,EAAc0B,EAAM1B,YACpBE,EAASwB,EAAMxB,OACfuG,EAAO5I,EAAyB6D,EAAO/D,GAE3C,OAAOrE,EAAcA,EAAcG,EAAgB,CACjD6M,UAAWN,GAAuBjJ,EAAqBuJ,EAAWlB,KAClEmB,QAASP,GAAuBjJ,EAAqBwJ,EAAShB,KAC9DiB,OAAQR,GAAuBjJ,EAAqByJ,EAAQhB,KAC5D9Q,QAASqR,GAAehJ,EAAqBrI,EAAS+Q,KACtD1F,YAAakG,GAAmBlJ,EAAqBgD,EAAauD,KAClErD,WAAYgG,GAAmBlJ,EAAqBkD,EAAY4D,KAChE7D,YAAaiG,GAAmBlJ,EAAqBiD,EAAagE,KAClE9D,OAAQ+F,GAAmBlJ,EAAqBmD,EAAQwE,KACxD2B,KAAsB,iBAATA,GAA8B,KAATA,EAAcA,EAAO,gBACtDD,EAAQ/D,IAAWxD,GAAaQ,EAE/B,CAAC,EAF2C,CAC9CqH,SAAU,IACHD,EACX,CACF,GAAG,CAACpE,GAAS+C,GAAaG,GAAWC,GAAUC,GAAWnC,GAAeO,GAAcG,GAAeU,GAAUrF,EAAYC,EAAQT,IAChI8H,IAAsBpb,EAAAA,EAAAA,cAAY,SAAU+Q,GAC9CA,EAAM3H,iBACR,GAAG,IACCiS,IAAgB5F,EAAAA,EAAAA,UAAQ,WAC1B,OAAO,WACL,IAAIW,EAAQ9L,UAAU/J,OAAS,QAAsBuP,IAAjBxF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EgR,EAAelF,EAAMyE,OACrBA,OAA0B,IAAjBS,EAA0B,MAAQA,EAC3CC,EAAWnF,EAAMmF,SACjBpS,EAAUiN,EAAMjN,QAChB+R,EAAO5I,EAAyB8D,EAAO/D,GAuB3C,OAAOtE,EAAcA,EAAc,CAAC,EArBnBG,EAAgB,CAC/B7C,OAAQmK,EACR9B,SAAUA,EACVnO,KAAM,OACNuF,MAAO,CACL0Q,OAAQ,EACRC,KAAM,mBACNC,SAAU,aACVC,OAAQ,MACRC,OAAQ,gBACRC,SAAU,SACVC,QAAS,EACTC,SAAU,WACVC,MAAO,MACPC,WAAY,UAEdV,SAAUf,GAAehJ,EAAqB+J,EAAUpC,KACxDhQ,QAASqR,GAAehJ,EAAqBrI,EAASiS,KACtDD,UAAW,GACVN,EAAQ9D,KAEyCmE,EACtD,CACF,GAAG,CAACnE,GAAU1L,EAAQqI,EAAUyF,GAAU7F,IAC1C,OAAOvF,EAAcA,EAAc,CAAC,EAAGoJ,IAAQ,CAAC,EAAG,CACjDnC,UAAWA,KAAc1B,EACzBqH,aAAcA,GACdU,cAAeA,GACfvE,QAASA,GACTC,SAAUA,GACV9D,KAAMuH,GAAepB,KAEzB,CAOA,SAASlC,EAAQC,EAAO+E,GAEtB,OAAQA,EAAO3W,MACb,IAAK,QACH,OAAOwI,EAAcA,EAAc,CAAC,EAAGoJ,GAAQ,CAAC,EAAG,CACjDnC,WAAW,IAGf,IAAK,OACH,OAAOjH,EAAcA,EAAc,CAAC,EAAGoJ,GAAQ,CAAC,EAAG,CACjDnC,WAAW,IAGf,IAAK,aACH,OAAOjH,EAAcA,EAAc,CAAC,EAAGgH,GAAe,CAAC,EAAG,CACxDE,oBAAoB,IAGxB,IAAK,cACH,OAAOlH,EAAcA,EAAc,CAAC,EAAGoJ,GAAQ,CAAC,EAAG,CACjDlC,oBAAoB,IAGxB,IAAK,kBACH,OAAOlH,EAAcA,EAAc,CAAC,EAAGoJ,GAAQ,CAAC,EAAG,CACjDjC,aAAcgH,EAAOhH,aACrBC,aAAc+G,EAAO/G,aACrBC,aAAc8G,EAAO9G,eAGzB,IAAK,WACH,OAAOrH,EAAcA,EAAc,CAAC,EAAGoJ,GAAQ,CAAC,EAAG,CACjD9B,cAAe6G,EAAO7G,cACtBC,eAAgB4G,EAAO5G,eACvBF,aAAc8G,EAAO9G,eAGzB,IAAK,QACH,OAAOrH,EAAc,CAAC,EAAGgH,GAE3B,QACE,OAAOoC,EAEb,CAEA,SAASP,IAAQ,C","sources":["../node_modules/react-drag-hierarchy-tree/dist/index.js","../node_modules/react-drag-hierarchy-tree/src/context/HierarchyContextProvider.tsx","../node_modules/react-drag-hierarchy-tree/src/components/RenderChildren/styles.ts","../node_modules/react-drag-hierarchy-tree/src/components/RenderChildren/index.tsx","../node_modules/react-drag-hierarchy-tree/node_modules/regenerator-runtime/runtime.js","../node_modules/react-drag-hierarchy-tree/src/components/RenderBtn/styles.ts","../node_modules/react-drag-hierarchy-tree/src/components/RenderBtn/index.tsx","../node_modules/react-drag-hierarchy-tree/src/components/RenderCard/styles.ts","../node_modules/react-drag-hierarchy-tree/src/components/RenderCard/index.tsx","../node_modules/react-drag-hierarchy-tree/src/hooks/useDebounce.ts","../node_modules/react-drag-hierarchy-tree/src/components/RenderNode/styles.ts","../node_modules/react-drag-hierarchy-tree/src/components/RenderNode/index.tsx","../node_modules/react-drag-hierarchy-tree/src/components/index.tsx","../node_modules/react-drag-hierarchy-tree/src/OrgTree.styles.ts","../node_modules/react-drag-hierarchy-tree/src/OrgTree.tsx","../node_modules/react-drag-hierarchy-tree/src/hooks/useTree.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js"],"sourcesContent":["\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./react-drag-hierarchy-tree.cjs.production.min.js')\n} else {\n module.exports = require('./react-drag-hierarchy-tree.cjs.development.js')\n}\n","import clone from 'clone';\nimport React, {\n createContext,\n useCallback,\n useContext,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport {\n IHierarchyContextData,\n INestedObject,\n IParsedArray,\n ISidebarDrawerProps,\n} from '../interfaces';\n\nconst HierarchyContext = createContext({} as IHierarchyContextData);\n\nexport function HierarchyContextProvider({\n children,\n onExpandNodes,\n treeRef,\n data,\n}: ISidebarDrawerProps): JSX.Element {\n const [hierarchy, setHierarchy] = useState(data);\n const hierarchyRef = useRef(data);\n const draggingItemRef = useRef(null);\n\n React.useEffect(() => {\n hierarchyRef.current = hierarchy;\n }, [hierarchy]);\n\n const nestedObjectToArray = useCallback((data: INestedObject) => {\n const array: IParsedArray[] = [];\n\n const loopChildren = (\n dataChildren: INestedObject,\n parentId?: number | string\n ) => {\n const insert = {\n id: dataChildren.id,\n label: dataChildren.label,\n parentId: null as number | string | null,\n };\n if (parentId || typeof parentId === 'number') {\n insert.parentId = parentId;\n }\n array.push(insert);\n if (\n Array.isArray(dataChildren.children) &&\n dataChildren.children.length > 0\n )\n dataChildren.children.map((child) => {\n loopChildren(child, dataChildren.id);\n });\n };\n\n loopChildren(data);\n\n return array;\n }, []);\n\n const arrayToNestedObject = useCallback(\n (data: IParsedArray[]): INestedObject => {\n const first = data.filter((i) => !i.parentId);\n // let array = [...data];\n if (first.length !== 1)\n return {\n id: 0,\n children: [],\n label: 'error',\n } as INestedObject;\n\n let nestedObject: INestedObject = {\n id: first[0].id,\n label: first[0].label,\n children: [],\n };\n\n const loopArray = (\n dataArray: IParsedArray[],\n parentId: number | string\n ) => {\n const children = [] as INestedObject[];\n dataArray.map((child) => {\n if (child.parentId === parentId) {\n const insert = {\n id: child.id,\n label: child.label,\n children: [] as INestedObject[],\n };\n children.push(insert);\n }\n });\n\n if (children.length === 0) return;\n\n const newNestedObject = editById(\n parentId,\n {\n children,\n },\n 'replace',\n nestedObject\n );\n\n nestedObject = newNestedObject;\n\n children.map((childLoop) => {\n loopArray(dataArray, childLoop.id);\n });\n };\n\n loopArray(data, first[0].id);\n\n return nestedObject;\n },\n []\n );\n\n const editById = useCallback(\n (\n id: number | string,\n data: Partial,\n action = 'add' as 'replace' | 'add' | 'remove',\n nestedObject?: INestedObject\n ) => {\n let nestedObjectClone = nestedObject\n ? { ...nestedObject }\n : { ...hierarchyRef.current };\n nestedObjectClone = clone(nestedObjectClone);\n\n if (nestedObjectClone.id === id) {\n if (!action || action === 'replace')\n return { ...nestedObjectClone, ...data };\n if (!action || action === 'add')\n return {\n ...nestedObjectClone,\n ...data,\n children: [\n ...nestedObjectClone.children,\n ...(data.children ? data.children : []),\n ],\n };\n if (!action || action === 'remove')\n return {\n ...nestedObjectClone,\n ...data,\n children: [\n ...nestedObjectClone.children.filter((child) =>\n data.children\n ? !data.children.map((i) => i.id).includes(child.id)\n : child\n ),\n ],\n };\n }\n\n if (!nestedObjectClone.children)\n return nestedObjectClone as INestedObject;\n\n const newChildren: INestedObject[] = nestedObjectClone.children.map(\n (child) => {\n return editById(id, data, action, child);\n }\n );\n\n return {\n ...nestedObjectClone,\n children: newChildren || [],\n } as INestedObject;\n },\n []\n );\n\n const addChildrenById = useCallback(\n (\n id: number | string,\n data: INestedObject[],\n nestedObject?: INestedObject\n ) => {\n let nestedObjectClone = nestedObject\n ? { ...nestedObject }\n : { ...hierarchyRef.current };\n nestedObjectClone = clone(nestedObjectClone);\n\n if (nestedObjectClone.id === id) {\n return {\n ...nestedObjectClone,\n children: [...nestedObjectClone.children, ...(data ? data : [])],\n };\n }\n\n if (!nestedObjectClone.children)\n return nestedObjectClone as INestedObject;\n\n const newChildren: INestedObject[] = nestedObjectClone.children.map(\n (child) => {\n return addChildrenById(id, data, child);\n }\n );\n\n return {\n ...nestedObjectClone,\n children: newChildren || [],\n } as INestedObject;\n },\n []\n );\n\n const removeById = useCallback(\n (\n id: number | string,\n dataToRemove: Array,\n nestedObject?: INestedObject\n ) => {\n let nestedObjectClone = nestedObject\n ? { ...nestedObject }\n : { ...hierarchyRef.current };\n nestedObjectClone = clone(nestedObjectClone);\n\n if (nestedObjectClone.id === id) {\n return {\n ...nestedObjectClone,\n ...dataToRemove,\n children: [\n ...nestedObjectClone.children.filter((child) =>\n dataToRemove\n ? !dataToRemove.map((i) => i).includes(child.id)\n : !child\n ),\n ],\n };\n }\n\n if (!nestedObjectClone.children)\n return nestedObjectClone as INestedObject;\n\n const newChildren: INestedObject[] = nestedObjectClone.children.map(\n (child) => {\n return removeById(id, dataToRemove, child);\n }\n );\n\n return {\n ...nestedObjectClone,\n children: newChildren || [],\n } as INestedObject;\n },\n []\n );\n\n const findParentByChildId = useCallback(\n (id: number | string, nestsObject?: INestedObject) => {\n let nestedObject = nestsObject\n ? { ...nestsObject }\n : { ...hierarchyRef.current };\n nestedObject = clone(nestedObject);\n\n const loop = (\n childObject: INestedObject,\n parentObject: INestedObject | null,\n arrayParentIdPaths = [] as Array\n ) => {\n const array: Array = [...arrayParentIdPaths];\n\n if (parentObject?.id) array.push(parentObject.id);\n\n if (childObject.id === id) {\n return { parent: parentObject, path: array };\n }\n\n if (!childObject?.children) return { parent: null, path: [] };\n\n let parent: {\n parent: INestedObject | null;\n path: Array;\n } = { parent: null, path: [] };\n\n childObject.children.map((child) => {\n const loopParent = loop(child, childObject, array);\n if (loopParent.parent !== null) {\n parent = loopParent;\n }\n });\n\n return parent;\n };\n\n const parentData = loop(nestedObject, null);\n\n return parentData;\n },\n []\n );\n\n const findById = useCallback((\n // nestedObject: INestedObject,\n id: number | string,\n nestsObject?: INestedObject\n ) => {\n let nestedObject = nestsObject\n ? { ...nestsObject }\n : { ...hierarchyRef.current };\n nestedObject = clone(nestedObject);\n\n const loop = (nestedObject: INestedObject, itemId: number | string) => {\n if (nestedObject.id === id) {\n return nestedObject;\n }\n if (!nestedObject?.children) return null;\n\n let item: INestedObject | null = null;\n\n nestedObject.children.map((child) => {\n const loopItem = loop(child, itemId);\n if (loopItem !== null) item = loopItem;\n return;\n });\n\n return item;\n };\n\n const Item = loop(nestedObject, id);\n\n return Item;\n }, []);\n\n const isChild = (parentId: number | string, childId: number | string) => {\n const { path } = findParentByChildId(childId);\n return path.includes(parentId);\n };\n\n useImperativeHandle(\n treeRef,\n () => {\n return {\n onExpandNodes,\n findById,\n findParentByChildId,\n removeById,\n editById,\n addChildrenById,\n nestedObjectToArray,\n arrayToNestedObject,\n data: hierarchyRef.current,\n };\n },\n [\n addChildrenById,\n arrayToNestedObject,\n editById,\n findById,\n findParentByChildId,\n nestedObjectToArray,\n onExpandNodes,\n removeById,\n ]\n );\n\n return (\n \n {children}\n \n );\n}\n\nexport const useHierarchyData = (): IHierarchyContextData =>\n useContext(HierarchyContext);\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\n\nimport { ITreeOptions } from '../interfaces';\n\nexport const ChildrenComponent = styled.div`\n position: relative;\n margin: 0;\n padding: 0;\n list-style-type: none;\n transition: all 1s ease-in-out;\n\n &:before,\n &:after {\n transition: all 0.35s;\n }\n\n padding-top: 20px;\n display: table;\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 50%;\n width: 0;\n height: 20px;\n border-right: ${(prop) => (prop.strokeWidth ? prop.strokeWidth : '1px')}\n solid ${(prop) => (prop.strokeColor ? prop.strokeColor : '#000')};\n }\n\n &:after {\n content: '';\n display: table;\n clear: both;\n }\n\n ${(props) =>\n props.horizontal &&\n css`\n display: table-cell;\n padding-top: 0;\n padding-left: 20px;\n\n &:before {\n top: calc(50% + 1px);\n left: 0;\n width: 20px;\n height: 0;\n border-left: 0;\n border-top: ${props.strokeWidth ? props.strokeWidth : '1px'} solid\n ${props.strokeColor ? props.strokeColor : '#000'};\n }\n\n &:after {\n display: none;\n }\n\n & > .org-tree-node {\n display: block;\n padding-left: 20px;\n }\n `}\n`;\n","import React from 'react';\n\nimport { IRenderChildren } from '../interfaces';\nimport { RenderNode } from '../RenderNode';\nimport { ChildrenComponent } from './styles';\n\nexport const RenderChildren = ({ list, data, prop, mock }: IRenderChildren) => {\n if (Array.isArray(list) && list.length) {\n return (\n \n {list.map((item) => {\n return (\n \n );\n })}\n \n );\n }\n return null;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\n\nimport { ITreeOptions } from '../interfaces';\ntype IButton = ITreeOptions & {\n buttonBackgroundColor: string;\n buttonBorderColor: string;\n};\nexport const RenderButton = styled.span`\n position: absolute;\n display: inline-block;\n top: 100%;\n left: 50%;\n width: 20px;\n height: 20px;\n z-index: 10;\n margin-left: -11px;\n margin-top: 9px;\n background-color: ${(prop) =>\n prop.buttonBackgroundColor ? prop.buttonBackgroundColor : '#fff'};\n border: 1px solid\n ${(prop) => (prop.buttonBorderColor ? prop.buttonBorderColor : '#ccc')};\n border-radius: 50%;\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n transition: all 0.35s ease;\n\n :hover {\n filter: brightness(0.9);\n transform: scale(1.1);\n }\n\n :before,\n :after {\n content: '';\n position: absolute;\n }\n\n :before {\n top: 50%;\n left: 4px;\n right: 4px;\n height: 0;\n border-top: 1px solid\n ${(prop) => (prop.buttonBorderColor ? prop.buttonBorderColor : '#ccc')};\n }\n\n :after {\n top: 4px;\n left: 50%;\n bottom: 4px;\n width: 0;\n border-left: 1px solid\n ${(prop) => (prop.buttonBorderColor ? prop.buttonBorderColor : '#ccc')};\n }\n\n ${(props) =>\n props.expanded &&\n css`\n &:after {\n border: none;\n }\n `}\n\n ${(props) =>\n props.horizontal &&\n css`\n top: 50%;\n left: 100%;\n margin-top: -11px;\n margin-left: 9px;\n `}\n`;\n\nexport const ContainerButton = styled.div`\n position: absolute;\n display: inline-block;\n top: 100%;\n left: 50%;\n width: 20px;\n height: 20px;\n z-index: 10;\n margin-left: -11px;\n margin-top: 9px;\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 50%;\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n transition: all 0.35s ease;\n\n ${(props) =>\n props.horizontal &&\n css`\n top: 50%;\n left: 100%;\n margin-top: -11px;\n margin-left: 9px;\n `}\n`;\n","import React, { MouseEvent } from 'react';\n\nimport { IRenderCard } from '../interfaces';\nimport { RenderButton, ContainerButton } from './styles';\n\nexport const RenderBtn = ({ setExpand, expand, prop }: IRenderCard) => {\n const { horizontal, renderButton } = prop;\n\n if (renderButton)\n return (\n \n {renderButton({\n isCollapsed: expand,\n onClick: (event: MouseEvent) => {\n event.stopPropagation();\n setExpand(!expand);\n },\n })}\n \n );\n\n return (\n {\n e.stopPropagation();\n setExpand(!expand);\n }}\n />\n );\n};\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\n\nimport { ITreeOptions } from '../interfaces';\n\nexport const CardArea = styled.div`\n position: relative;\n display: inline-block;\n cursor: move;\n z-index: 10;\n ${(props) =>\n props.horizontal &&\n css`\n display: table-cell;\n vertical-align: middle;\n `}\n`;\n\ninterface ICardCard {\n isDragging: boolean;\n}\nexport const RenderLabel = styled.div`\n background-color: white;\n cursor: grab;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 15px;\n min-width: 100px;\n min-height: 45px;\n z-index: 100000;\n text-align: center;\n color: black;\n position: relative;\n box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);\n border-radius: 5px;\n\n // no break line\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &.mock_card {\n border: 1px solid #7de874;\n }\n\n ${(props) =>\n props.isDragging &&\n css`\n cursor: grabbing;\n `}\n`;\n\nexport const RenderCarPersonal = styled.div`\n position: relative;\n\n &.mock_card {\n border: 1px solid #7de874;\n }\n`;\n\nexport const StyledLabel = styled.div`\n margin: 0;\n padding: 0;\n`;\n","import React, { useEffect } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\n\nimport { isLastNode } from '..';\nimport { useHierarchyData } from '../../context/HierarchyContextProvider';\nimport { useDebounce } from '../../hooks/useDebounce';\nimport { INestedObject } from '../../interfaces';\nimport { IRenderCard } from '../interfaces';\nimport { RenderBtn } from '../RenderBtn';\nimport {\n CardArea,\n RenderLabel,\n StyledLabel,\n RenderCarPersonal,\n} from './styles';\n\nexport const RenderCard = ({\n data,\n setExpand,\n expand,\n mock,\n prop: { renderCard, ...prop },\n}: IRenderCard) => {\n const {\n setHierarchy,\n hierarchyRef,\n editById,\n isChild,\n findParentByChildId,\n findById,\n draggingItemRef,\n } = useHierarchyData();\n\n const node = prop.node;\n const label = data[node.label];\n const clx = ['org-tree-node-label-inner'];\n\n if (mock) {\n clx.push('mock_card');\n }\n\n const onAppendMock = (id: number | string, label: string) => {\n // add renderNode if has already children inside\n const componentChildren = document.getElementById(`children_${id}`);\n if (componentChildren) {\n const elementMockLabel = document.getElementById(`label_text_mock`);\n const elementMockNode = document.getElementById(`node-tree-mock`);\n if (!elementMockLabel) return;\n if (!elementMockNode) return;\n\n elementMockLabel.innerText = label;\n\n elementMockNode.style.display = 'table-cell';\n elementMockNode.id = `node-tree-mock-clone`;\n const elementMockNodeClone = elementMockNode?.cloneNode(true);\n elementMockNode.style.display = 'none';\n elementMockNode.id = `node-tree-mock`;\n\n const elementMockNodeLastChild = elementMockNodeClone.lastChild;\n elementMockNodeLastChild &&\n elementMockNodeClone.removeChild(elementMockNodeLastChild);\n\n componentChildren.appendChild(elementMockNodeClone);\n return;\n }\n\n // add renderChildrenNode if does not have children inside\n const componentNode = document.getElementById(`node-tree-${id}`);\n if (componentNode) {\n const elementMockLabel = document.getElementById(`label_text_child_mock`);\n const componentMockChildren = document.getElementById(`children_mock`);\n\n if (!elementMockLabel) return;\n if (!componentMockChildren) return;\n\n elementMockLabel.innerText = label;\n\n const oldMockId = componentMockChildren.id;\n componentMockChildren.id = `node-tree-mock-clone`;\n const componentMockChildrenClone = componentMockChildren?.cloneNode(true);\n componentMockChildren.id = oldMockId;\n\n componentNode.appendChild(componentMockChildrenClone);\n }\n };\n\n const onRemoveMock = () => {\n const componentCloneMock = document.getElementById(`node-tree-mock-clone`);\n componentCloneMock && componentCloneMock.remove();\n };\n\n const [{ isDragging }, drag] = useDrag(\n () => ({\n type: 'box',\n item: data,\n options: {\n dropEffect: 'copy',\n },\n collect: (monitor) => ({\n isDragging: !!monitor.isDragging(),\n }),\n }),\n []\n );\n\n useEffect(() => {\n const labelDoc = document.getElementById(`node-tree-${data.id}`);\n if (!labelDoc) return;\n\n // labelDoc.style.opacity = isDragging ? '0.5' : '1';\n\n const LabelClassName = labelDoc.className;\n\n labelDoc.className = isDragging\n ? labelDoc.className + ' RdtCant-drop'\n : LabelClassName.replace(' RdtCant-drop', '');\n\n draggingItemRef.current = data;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDragging]);\n\n const onDragEnter = (dropId: string | number) => {\n let dragLabel = 'Copiar aqui';\n if (draggingItemRef.current) {\n const dragItemId = draggingItemRef.current.id;\n const canDrop = dragItemId !== data.id && !isChild(dragItemId, data.id);\n dragLabel = draggingItemRef.current.label;\n if (!canDrop) return;\n }\n onAppendMock(dropId, dragLabel);\n };\n\n const onDragLeave = () => {\n onRemoveMock();\n };\n\n const onDrop = (drag: INestedObject) => {\n const dragItem = findById(drag.id);\n const dropItem = data;\n\n const { parent: parentDragItem } = findParentByChildId(drag.id);\n\n if (parentDragItem && dragItem) {\n const newParent = {\n ...parentDragItem,\n children: [...parentDragItem.children.filter((i) => i.id !== drag.id)],\n };\n\n const removedDragItemHierarchy = editById(\n parentDragItem.id,\n newParent,\n 'replace'\n );\n\n const addedDragItemHierarchy = editById(\n dropItem.id,\n {\n children: [dragItem],\n },\n 'add',\n removedDragItemHierarchy\n );\n\n setHierarchy(addedDragItemHierarchy);\n hierarchyRef.current = addedDragItemHierarchy;\n }\n };\n\n const { onDebounce } = useDebounce(onDragEnter, 300);\n\n const [{ isOver }, drop] = useDrop(\n () => ({\n accept: 'box',\n canDrop: (item: INestedObject) =>\n item.id !== data.id && !isChild(item.id, data.id),\n drop: (drag: INestedObject) => onDrop(drag),\n collect: (monitor) => ({\n isOver: !!monitor.isOver(),\n }),\n }),\n []\n );\n\n useEffect(() => {\n if (isOver) onDebounce(data.id);\n else onDragLeave();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOver]);\n\n return (\n \n typeof prop.onClick === 'function' && prop.onClick(e, data)\n }\n >\n {renderCard ? (\n \n {renderCard({\n isDragging,\n label,\n labelId: `label_text_${data.id}`,\n data,\n isPreviewCard: !!mock,\n })}\n {prop.collapsable && !isLastNode(data, prop) && (\n \n )}\n \n ) : (\n \n {label}\n {prop.collapsable && !isLastNode(data, prop) && (\n \n )}\n \n )}\n \n );\n};\n","import { useEffect, useRef } from \"react\";\n\ninterface IDebounce {\n onDebounce: (...args: any[]) => void;\n onClearDebounce: () => void;\n}\n\nexport const useDebounce = (\n fn: (...args: any[]) => void,\n delay: number,\n continueUnmounted?: boolean // if want to continue to update after unmounted\n): IDebounce => {\n const ref = useRef(null);\n\n useEffect(() => {\n return () => {\n if (ref.current && !continueUnmounted) window.clearTimeout(ref.current);\n };\n });\n\n async function onDebounce(...args: any[]): Promise {\n if (ref.current) {\n await window.clearTimeout(ref.current);\n }\n\n const timeout = await window.setTimeout(() => {\n fn(...args);\n }, delay);\n ref.current = timeout;\n }\n\n function onClearDebounce(): void {\n if (ref.current) window.clearTimeout(ref.current);\n }\n\n return { onDebounce, onClearDebounce };\n};\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\n\nimport { ITreeOptions } from '../interfaces';\n\nexport const OrgTreeNode = styled.div`\n position: relative;\n margin: 0;\n padding: 0;\n list-style-type: none;\n padding-left: 20px;\n\n &:before,\n &:after {\n transition: all 0.35s;\n }\n\n padding-top: 20px;\n display: table-cell;\n vertical-align: top;\n\n &.is-leaf,\n &.collapsed {\n padding-left: 10px;\n padding-right: 10px;\n }\n\n &:before,\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 19px;\n }\n\n &:after {\n left: 50%;\n border-left: 1px solid\n ${(prop) => (prop.strokeColor ? prop.strokeColor : '#000')};\n }\n\n &:not(:first-of-type):before,\n &:not(:last-of-type):after {\n border-top: 1px solid\n ${(prop) => (prop.strokeColor ? prop.strokeColor : '#000')};\n }\n\n // remove the line of the first label\n &.org-tree-node-first {\n padding-top: 0;\n\n &:before,\n &:after {\n border-left: none;\n opacity: 0;\n }\n }\n\n ${(props) =>\n props.horizontal &&\n css`\n display: table-cell;\n float: none;\n padding-top: 0;\n padding-left: 20px;\n\n &.is-leaf,\n &.collapsed {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n &:before,\n &:after {\n width: 19px;\n height: 50%;\n }\n\n &:after {\n top: 50%;\n left: 0;\n border-left: 0;\n }\n\n &:only-child:before {\n top: 1px;\n border-bottom: 1px solid\n ${props.strokeColor ? props.strokeColor : '#000'};\n }\n\n &:not(:first-of-type):before,\n &:not(:last-of-type):after {\n border-top: 0;\n border-left: 1px solid ${props.strokeColor ? props.strokeColor : '#000'};\n }\n\n &:not(:only-child):after {\n border-top: 1px solid ${props.strokeColor ? props.strokeColor : '#000'};\n }\n\n // remove the line of the first label\n &.org-tree-node-first {\n padding-left: 0;\n\n &:after {\n border-left: none;\n opacity: 0;\n }\n }\n `}\n\n .RdtCant-drop {\n opacity: 0.5;\n cursor: no-drop;\n .org-tree-node-label-inner {\n background-color: #aaaaaa33;\n }\n .org-tree-node-label-inner-personal {\n opacity: 0.5;\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport { isLastNode } from '..';\nimport { IRender } from '../interfaces';\nimport { RenderChildren } from '../RenderChildren';\nimport { RenderCard } from '../RenderCard';\nimport { OrgTreeNode } from './styles';\n\nexport const RenderNode = ({ data, prop, first, mock }: IRender) => {\n const node = prop.node;\n const cls = ['org-tree-node'];\n\n const [expand, setExpand] = useState(\n !(node.expand in data && !data[node.expand])\n );\n\n useEffect(() => {\n setExpand(prop.expandAll);\n }, [prop.expandAll]);\n\n if (isLastNode(data, prop)) {\n cls.push('is-leaf');\n } else if (prop.collapsable && !expand) {\n cls.push('collapsed');\n }\n\n if (first) cls.push('org-tree-node-first');\n\n return (\n \n \n {(!prop.collapsable || expand) && (\n \n )}\n \n );\n};\n","import React from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\n\nimport { useHierarchyData } from '../context/HierarchyContextProvider';\nimport { IOrgTreeNodeProps } from '../interfaces';\nimport { RenderNode } from './RenderNode';\n\nexport const isLastNode = (data: any, prop: IOrgTreeNodeProps) => {\n const node = prop.node;\n return !(\n Array.isArray(data[node.children]) && data[node.children].length > 0\n );\n};\n\nconst mock_data = {\n id: 'mock',\n label: 'Label',\n children: [{ id: 'child_mock', label: 'Label', children: [] }],\n};\n\nexport const TreeNode = (props: IOrgTreeNodeProps) => {\n const { hierarchy } = useHierarchyData();\n return (\n \n \n \n \n );\n};\n","import styled from '@emotion/styled';\n\ninterface IHorizontal {\n horizontal: boolean;\n}\nexport const OrgTreeContainer = styled.div`\n display: block;\n padding: 15px;\n`;\n\nexport const OrgTree = styled.div`\n display: table;\n text-align: center;\n\n &:before,\n &:after {\n content: '';\n display: table;\n }\n\n &:after {\n clear: both;\n }\n`;\n","import React, { forwardRef, useCallback, useState } from 'react';\n\nimport { TreeNode } from './components';\nimport { HierarchyContextProvider } from './context/HierarchyContextProvider';\nimport { INodeTree, IOrgTreeProps } from './interfaces';\nimport { OrgTree, OrgTreeContainer } from './OrgTree.styles';\n\nconst initialState = {\n node: {\n label: 'label',\n expand: 'expand',\n children: 'children',\n },\n};\n\nexport const OrgTreeComponent = forwardRef(\n (\n {\n data,\n onClick,\n collapsable = true,\n expandAll = true,\n horizontal = false,\n ...props\n },\n ref\n ) => {\n const [expandAllNodes, setExpandAllNodes] = useState(expandAll);\n const node = initialState.node as INodeTree;\n\n const onExpandNodes = useCallback(() => {\n const labelDoc = document.getElementById(`children_${data.id}`);\n if (labelDoc) setExpandAllNodes((expandAllNodes) => !expandAllNodes);\n else setExpandAllNodes(true);\n }, [data.id]);\n\n return (\n \n \n \n onClick && onClick(e, nodeData)}\n {...props}\n />\n \n \n \n );\n }\n);\n","import { RefObject, useRef } from \"react\";\n\nimport { ITreeRefProps } from \"../interfaces\";\n\n// interface ITreeProps extends ITreeRefProps {\ninterface ITreeProps {\n treeRef: RefObject;\n}\n\nexport const useTree = (): ITreeProps => {\n const treeRef = useRef(null);\n\n return {\n treeRef,\n };\n};\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _accepts from \"attr-accept\";\nvar accepts = typeof _accepts === \"function\" ? _accepts : _accepts.default; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n};\n/**\n *\n * @param {string} accept\n */\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr() {\n var accept = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var acceptArr = accept.split(\",\");\n var msg = acceptArr.length > 1 ? \"one of \".concat(acceptArr.join(\", \")) : acceptArr[0];\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(msg)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n};\n/**\n * Check if file is accepted.\n *\n * Firefox versions prior to 53 return a bogus MIME type for every file drag,\n * so dragovers with that MIME type will always be accepted.\n *\n * @param {File} file\n * @param {string} accept\n * @returns\n */\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles,\n validator = _ref.validator;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n var customErrors = validator ? validator(file) : null;\n return accepted && sizeMatch && !customErrors;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n if (isDefined(accept)) {\n var acceptForPicker = Object.entries(accept).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n mimeType = _ref3[0],\n ext = _ref3[1];\n\n var ok = true;\n\n if (!isMIMEType(mimeType)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n ok = false;\n }\n\n if (!Array.isArray(ext) || !ext.every(isExt)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n ok = false;\n }\n\n return ok;\n }).reduce(function (agg, _ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n mimeType = _ref5[0],\n ext = _ref5[1];\n\n return _objectSpread(_objectSpread({}, agg), {}, _defineProperty({}, mimeType, ext));\n }, {});\n return [{\n // description is required due to https://crbug.com/1264708\n description: \"Files\",\n accept: acceptForPicker\n }];\n }\n\n return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).reduce(function (a, _ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n mimeType = _ref7[0],\n ext = _ref7[1];\n\n return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n .filter(function (v) {\n return isMIMEType(v) || isExt(v);\n }).join(\",\");\n }\n\n return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || v === \"application/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false,\n autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n */\n accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Set to true to focus the root element on render\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Cb for when there's some error from any of the promises.\n *\n * @param {Error} error\n */\n onError: PropTypes.func,\n\n /**\n * Custom validation function. It must return null if there's no errors.\n * @param {File} file\n * @returns {FileError|FileError[]|null}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n accept = _defaultProps$props.accept,\n disabled = _defaultProps$props.disabled,\n getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n maxSize = _defaultProps$props.maxSize,\n minSize = _defaultProps$props.minSize,\n multiple = _defaultProps$props.multiple,\n maxFiles = _defaultProps$props.maxFiles,\n onDragEnter = _defaultProps$props.onDragEnter,\n onDragLeave = _defaultProps$props.onDragLeave,\n onDragOver = _defaultProps$props.onDragOver,\n onDrop = _defaultProps$props.onDrop,\n onDropAccepted = _defaultProps$props.onDropAccepted,\n onDropRejected = _defaultProps$props.onDropRejected,\n onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n useFsAccessApi = _defaultProps$props.useFsAccessApi,\n autoFocus = _defaultProps$props.autoFocus,\n preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n noClick = _defaultProps$props.noClick,\n noKeyboard = _defaultProps$props.noKeyboard,\n noDrag = _defaultProps$props.noDrag,\n noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n onError = _defaultProps$props.onError,\n validator = _defaultProps$props.validator;\n\n var acceptAttr = useMemo(function () {\n return acceptPropAsAcceptAttr(accept);\n }, [accept]);\n var pickerTypes = useMemo(function () {\n return pickerOptionsFromAccept(accept);\n }, [accept]);\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n /**\n * @constant\n * @type {React.MutableRefObject}\n */\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n useEffect(function () {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n\n return function () {};\n }, [rootRef, autoFocus, disabled]);\n var onErrCb = useCallback(function (e) {\n if (onError) {\n onError(e);\n } else {\n // Let the user know something's gone wrong if they haven't provided the onError cb.\n console.error(e);\n }\n }, [onError]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var fileCount = files.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: files,\n accept: acceptAttr,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles,\n validator: validator\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n dispatch({\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n type: \"setDraggedFiles\",\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, acceptAttr),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n isDragReject: fileRejections.length > 0,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: pickerTypes\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n } else {\n onErrCb(new Error(\"Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided.\"));\n }\n } else {\n onErrCb(e);\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: acceptAttr,\n multiple: multiple,\n type: \"file\",\n style: {\n border: 0,\n clip: \"rect(0, 0, 0, 0)\",\n clipPath: \"inset(50%)\",\n height: \"1px\",\n margin: \"0 -1px -1px 0\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragActive: action.isDragActive,\n isDragAccept: action.isDragAccept,\n isDragReject: action.isDragReject\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections,\n isDragReject: action.isDragReject\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";"],"names":["module","exports","p","e","createContext","h","n","r","children","o","onExpandNodes","a","treeRef","l","data","c","useState","d","s","f","useRef","t","useEffect","current","v","useCallback","id","label","parentId","push","Array","isArray","length","map","g","filter","i","y","u","concat","includes","b","m","x","parent","path","k","useImperativeHandle","findById","findParentByChildId","removeById","editById","addChildrenById","nestedObjectToArray","arrayToNestedObject","createElement","Provider","value","draggingItemRef","hierarchyRef","hierarchy","setHierarchy","isChild","w","C","E","_","B","I","L","O","j","z","N","T","useContext","P","div","strokeWidth","strokeColor","horizontal","css","R","list","prop","mock","className","K","key","A","Object","prototype","hasOwnProperty","Symbol","iterator","asyncIterator","toStringTag","defineProperty","enumerable","configurable","writable","create","_invoke","Error","done","method","arg","delegate","sent","_sent","dispatchException","abrupt","type","call","wrap","this","getPrototypeOf","forEach","resolve","__await","then","return","TypeError","resultName","next","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","AsyncIterator","async","Promise","keys","reverse","pop","values","prev","charAt","slice","stop","rval","complete","finish","catch","delegateYield","regeneratorRuntime","globalThis","Function","D","span","buttonBackgroundColor","buttonBorderColor","expanded","S","G","setExpand","expand","renderButton","isCollapsed","onClick","stopPropagation","W","q","isDragging","F","H","M","Y","renderCard","node","useDrag","item","options","dropEffect","collect","document","getElementById","replace","arguments","window","clearTimeout","setTimeout","apply","onDebounce","onClearDebounce","innerText","style","display","cloneNode","lastChild","removeChild","appendChild","useDrop","accept","canDrop","drop","isOver","remove","ref","labelId","isPreviewCard","collapsable","Q","join","cardStyle","J","first","expandAll","U","V","DndProvider","backend","HTML5Backend","X","Z","$","nn","forwardRef","assign","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","err","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","accepts","_accepts","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","acceptArr","undefined","split","msg","code","message","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","file","isAcceptable","fileMatchSize","isDefined","size","isPropagationStopped","event","cancelBubble","isEvtWithFiles","dataTransfer","some","types","files","onDocumentDragOver","preventDefault","composeEventHandlers","_len","fns","_key","_len2","args","_key2","fn","isMIMEType","isExt","_excluded","_excluded2","_excluded3","_excluded4","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","Dropzone","_ref","_useDropzone","useDropzone","open","props","React","Fragment","defaultProps","disabled","getFilesFromEvent","fromEvent","Infinity","multiple","maxFiles","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","autoFocus","propTypes","PropTypes","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","onError","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","acceptedFiles","fileRejections","_defaultProps$props","acceptAttr","useMemo","entries","reduce","_ref6","_ref7","mimeType","ext","acceptPropAsAcceptAttr","pickerTypes","description","_ref2","_ref3","ok","every","agg","_ref4","_ref5","pickerOptionsFromAccept","onFileDialogOpenCb","noop","onFileDialogCancelCb","rootRef","inputRef","_useReducer2","useReducer","reducer","state","dispatch","fsAccessApiWorksRef","isSecureContext","onWindowFocus","addEventListener","removeEventListener","dragTargetsRef","onDocumentDrop","contains","focus","onErrCb","onDragEnterCb","persist","fileCount","accepted","sizeMatch","customErrors","allFilesAccepted","onDragOverCb","hasFiles","_unused","onDragLeaveCb","targets","targetIdx","splice","setFiles","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","errors","onDropCb","openFileDialog","opts","showOpenFilePicker","handles","DOMException","ABORT_ERR","SECURITY_ERR","isSecurityError","click","onKeyDownCb","isEqualNode","keyCode","onFocusCb","onBlurCb","onClickCb","userAgent","navigator","isIe","isEdge","isIeOrEdge","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","role","onKeyDown","onFocus","onBlur","rest","tabIndex","onInputElementClick","getInputProps","_ref3$refKey","onChange","border","clip","clipPath","height","margin","overflow","padding","position","width","whiteSpace","action"],"sourceRoot":""}