{"mappings":";AACO,IC0BMA,EChBPC,ECPFC,EA2FSC,GCmFTC,EAWAC,EAEEC,EA0BAC,EC1MAC,GAaFC,EAkJEC,EACAC,EC7KKC,GNeEC,EAAgC,CAAG,EACnCC,GAAY,CAAA,EACZC,GACZ,oEClBYC,EAAUC,MAAMD,QAStB,SAASE,EAAOC,EAAKC,EAAAA,CAE3B,QAASR,KAAKQ,EAAOD,EAAIP,CAAAA,EAAKQ,EAAMR,CAAAA,EACpC,OAA6BO,CAC9B,CAQgB,SAAAE,EAAWC,EAAAA,CACtBA,GAAQA,EAAKC,YAAYD,EAAKC,WAAWC,YAAYF,CAAAA,CAC1D,CEVgB,SAAAG,GAAcC,EAAMN,EAAOO,EAAAA,CAC1C,IACCC,EACAC,EACAjB,EAHGkB,EAAkB,CAAA,EAItB,IAAKlB,KAAKQ,EACLR,GAAK,MAAOgB,EAAMR,EAAMR,CAAAA,EACnBA,GAAK,MAAOiB,EAAMT,EAAMR,CAAAA,EAC5BkB,EAAgBlB,CAAAA,EAAKQ,EAAMR,CAAAA,EAUjC,GAPImB,UAAUC,OAAS,IACtBF,EAAgBH,SACfI,UAAUC,OAAS,EAAIhC,EAAMiC,KAAKF,UAAW,CAAA,EAAKJ,GAKjC,OAARD,GAAQ,YAAcA,EAAKQ,cAAgB,KACrD,IAAKtB,KAAKc,EAAKQ,aACVJ,EAAgBlB,CAAAA,IADNsB,SAEbJ,EAAgBlB,CAAAA,EAAKc,EAAKQ,aAAatB,CAAAA,GAK1C,OAAOuB,EAAYT,EAAMI,EAAiBF,EAAKC,EAAK,IAAA,CACrD,CAAA,SAcgBM,EAAYT,EAAMN,EAAOQ,EAAKC,EAAKO,EAAAA,CAIlD,IAAMC,EAAQ,CACbX,KAAAA,EACAN,MAAAA,EACAQ,IAAAA,EACAC,IAAAA,EACAS,IAAW,KACXC,GAAS,KACTC,IAAQ,EACRC,IAAM,KACNC,IAAY,KACZC,YAAAA,OACAC,IAAWR,GAAAA,EAAqBlC,EAChC2C,IAAAA,GACAC,IAAQ,CAAA,EAMT,OAFIV,GAAY,MAAQnC,EAAQoC,OAAS,MAAMpC,EAAQoC,MAAMA,CAAAA,EAEtDA,CACR,CAEO,SAASU,IAAAA,CACf,MAAO,CAAEC,QAAS,IAAA,CACnB,CAAA,SAEgBC,EAAS7B,EAAAA,CACxB,OAAOA,EAAMO,QACd,CAAA,SC3EgBuB,EAAc9B,EAAO+B,EAAAA,CACpCC,KAAKhC,MAAQA,EACbgC,KAAKD,QAAUA,CAChB,CA0EgB,SAAAE,EAAchB,EAAOiB,EAAAA,CACpC,GAAIA,GAAc,KAEjB,OAAOjB,EAAKE,GACTc,EAAchB,EAAKE,GAAUF,EAAKQ,IAAU,CAAA,EAC5C,KAIJ,QADIU,EACGD,EAAajB,EAAKC,IAAWN,OAAQsB,IAG3C,IAFAC,EAAUlB,EAAKC,IAAWgB,CAAAA,IAEX,MAAQC,EAAOd,KAAS,KAItC,OAAOc,EAAOd,IAShB,OAA4B,OAAdJ,EAAMX,MAAQ,WAAa2B,EAAchB,CAAAA,EAAS,IACjE,CA2CA,SAASmB,GAAwBnB,EAAAA,CAAjC,IAGWzB,EACJ6C,EAHN,IAAKpB,EAAQA,EAAKE,KAAa,MAAQF,EAAKK,KAAe,KAAM,CAEhE,IADAL,EAAKI,IAAQJ,EAAKK,IAAYgB,KAAO,KAC5B9C,EAAI,EAAGA,EAAIyB,EAAKC,IAAWN,OAAQpB,IAE3C,IADI6C,EAAQpB,EAAKC,IAAW1B,CAAAA,IACf,MAAQ6C,EAAKhB,KAAS,KAAM,CACxCJ,EAAKI,IAAQJ,EAAKK,IAAYgB,KAAOD,EAAKhB,IAC1C,KACD,CAGD,OAAOe,GAAwBnB,CAAAA,CAChC,CACD,CA4BgB,SAAAsB,EAAcC,EAAAA,EAAAA,CAE1BA,EAACC,MACDD,EAACC,IAAAA,KACFzD,EAAc0D,KAAKF,CAAAA,GAAAA,CAClBG,EAAOC,OACT3D,IAAiBJ,EAAQgE,sBAEzB5D,EAAeJ,EAAQgE,oBACN3D,GAAOyD,CAAAA,CAE1B,CASA,SAASA,GAAAA,CAAT,IACKH,EAMEM,EAzGkBC,EAOjBC,EANHC,EACHC,EACAC,EACAC,EAmGD,IAHApE,EAAcqE,KAAKlE,CAAAA,EAGXqD,EAAIxD,EAAcsE,MAAAA,GACrBd,EAACC,MACAK,EAAoB9D,EAAc4B,OAlGjCoC,EAAAA,OALNE,GADGD,GADoBF,EA0GNP,GAzGMhB,KACNH,IACjB8B,EAAc,CAAA,EACdC,EAAW,CAAA,EAERL,EAASQ,OACNP,EAAWlD,EAAO,CAAA,EAAImD,CAAAA,GACpBzB,IAAayB,EAAQzB,IAAa,EACtC3C,EAAQoC,OAAOpC,EAAQoC,MAAM+B,CAAAA,EAEjCQ,EACCT,EAASQ,IACTP,EACAC,EACAF,EAASU,IACTV,EAASQ,IAAYG,aJzII,GI0IzBT,EAAQvB,IAAyB,CAACwB,CAAAA,EAAU,KAC5CC,EACAD,GAAiBjB,EAAcgB,CAAAA,EAAYC,CAAAA,EJ5IlB,GI6ItBD,EAAQvB,KACX0B,CAAAA,EAGDJ,EAAQxB,IAAayB,EAAQzB,IAC7BwB,EAAQ7B,GAAAD,IAAmB8B,EAAQvB,GAAAA,EAAWuB,EAC9CW,GAAWR,EAAaH,EAAUI,CAAAA,EAE9BJ,EAAQ3B,KAAS6B,GACpBd,GAAwBY,CAAAA,GA8EpBhE,EAAc4B,OAASkC,GAI1B9D,EAAcqE,KAAKlE,CAAAA,GAItBwD,EAAOC,IAAkB,CAC1B,CGrMO,SAASgB,GACfC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhB,EACAD,EACAkB,EACAhB,EAAAA,CAXM,IAaF5D,EAEHyD,EAEAoB,EAEAC,EAEAC,EAiCIC,EA5BDC,EAAeT,GAAkBA,EAAc9C,KAAexB,GAE9DgF,EAAoBZ,EAAalD,OAUrC,IARAsC,EAASyB,GACRZ,EACAD,EACAW,EACAvB,EACAwB,CAAAA,EAGIlF,EAAI,EAAGA,EAAIkF,EAAmBlF,KAClC6E,EAAaN,EAAc7C,IAAW1B,CAAAA,IACpB,OAKjByD,EADGoB,EAAU5C,MACbwB,GAAWxD,EAEAgF,EAAYJ,EAAU5C,GAAAA,GAAYhC,EAI9C4E,EAAU5C,IAAUjC,EAGhBgF,EAAShB,EACZK,EACAQ,EACApB,EACAgB,EACAC,EACAC,EACAhB,EACAD,EACAkB,EACAhB,CAAAA,EAIDkB,EAASD,EAAUhD,IACfgD,EAAW5D,KAAOwC,EAASxC,KAAO4D,EAAW5D,MAC5CwC,EAASxC,KACZmE,EAAS3B,EAASxC,IAAK,KAAM4D,CAAAA,EAE9BjB,EAASV,KACR2B,EAAW5D,IACX4D,EAAU/C,KAAegD,EACzBD,CAAAA,GAIEE,GAAiB,MAAQD,GAAU,OACtCC,EAAgBD,GPrHS,EOyHzBD,EAAU3C,KACVuB,EAAQ/B,MAAemD,EAAUnD,IAEjCgC,EAAS2B,GAAOR,EAAYnB,EAAQW,CAAAA,EACA,OAAnBQ,EAAW/D,MAAQ,YAAckE,IAAtBlE,OAC5B4C,EAASsB,EACCF,IACVpB,EAASoB,EAAOQ,aAIjBT,EAAU3C,KAAAA,IAKX,OAFAqC,EAAc1C,IAAQkD,EAEfrB,CACR,CAOA,SAASyB,GACRZ,EACAD,EACAW,EACAvB,EACAwB,EAAAA,CALD,IAQKlF,EAEA6E,EAEApB,EA8DG8B,EAOAC,EAnEHC,EAAoBR,EAAY7D,OACnCsE,EAAuBD,EAEpBE,EAAO,EAGX,IADApB,EAAc7C,IAAa,IAAIrB,MAAM6E,CAAAA,EAChClF,EAAI,EAAGA,EAAIkF,EAAmBlF,KAGlC6E,EAAaP,EAAatE,CAAAA,IAGX,MACO,OAAd6E,GAAc,WACA,OAAdA,GAAc,YA8ChBU,EAAcvF,EAAI2F,GA/BvBd,EAAaN,EAAc7C,IAAW1B,CAAAA,EANjB,OAAd6E,GAAc,UACA,OAAdA,GAAc,UAEA,OAAdA,GAAc,UACrBA,EAAW9C,aAAe6D,OAEiBrE,EAC1C,KACAsD,EACA,KACA,KACA,IAAA,EAESzE,EAAQyE,CAAAA,EACyBtD,EAC1Cc,EACA,CAAEtB,SAAU8D,CAAAA,EACZ,KACA,KACA,IAAA,EAESA,EAAW9C,cAFpB,QAEiD8C,EAAUjD,IAAU,EAK3BL,EAC1CsD,EAAW/D,KACX+D,EAAWrE,MACXqE,EAAW7D,IACX6D,EAAW5D,IAAM4D,EAAW5D,IAAM,KAClC4D,EAAU7C,GAAAA,EAGgC6C,GAIlClD,GAAW4C,EACrBM,EAAUjD,IAAU2C,EAAc3C,IAAU,EAY5C6B,EAAW,MAPL+B,EAAiBX,EAAU5C,IAAU4D,GAC1ChB,EACAI,EACAM,EACAG,CAAAA,KAGU,KAGVA,KADAjC,EAAWwB,EAAYO,CAAAA,KAGtB/B,EAAQvB,KP5OW,IOmPFuB,GAAY,MAAQA,EAAQzB,MAAe,MAGzDwD,GAH0CxD,IAI7C2D,IAI6B,OAAnBd,EAAW/D,MAAQ,aAC7B+D,EAAU3C,KP9Pc,IOgQfsD,GAAiBD,IAiBvBC,GAAiBD,EAAc,EAClCI,IACUH,GAAiBD,EAAc,EACzCI,KAEIH,EAAgBD,EACnBI,IAEAA,IAMDd,EAAU3C,KP/Rc,KO+KzBqC,EAAc7C,IAAW1B,CAAAA,EAAK,KAyHhC,GAAI0F,EACH,IAAK1F,EAAI,EAAGA,EAAIyF,EAAmBzF,KAClCyD,EAAWwB,EAAYjF,CAAAA,IACP,MPzSI,IOySKyD,EAAQvB,OAC5BuB,EAAQ5B,KAAS6B,IACpBA,EAASjB,EAAcgB,CAAAA,GAGxBqC,GAAQrC,EAAUA,CAAAA,GAKrB,OAAOC,CACR,CAQA,SAAS2B,GAAOU,EAAarC,EAAQW,EAAAA,CAArC,IAIMtD,EACKf,EAFV,GAA+B,OAApB+F,EAAYjF,MAAQ,WAAY,CAE1C,IADIC,EAAWgF,EAAWrE,IACjB1B,EAAI,EAAGe,GAAYf,EAAIe,EAASK,OAAQpB,IAC5Ce,EAASf,CAAAA,IAKZe,EAASf,CAAAA,EAAE2B,GAAWoE,EACtBrC,EAAS2B,GAAOtE,EAASf,CAAAA,EAAI0D,EAAQW,CAAAA,GAIvC,OAAOX,CACR,CAAWqC,EAAWlE,KAAS6B,IAC1BA,GAAUqC,EAAYjF,MAAAA,CAASuD,EAAU2B,SAAStC,CAAAA,IACrDA,EAASjB,EAAcsD,CAAAA,GAExB1B,EAAU4B,aAAaF,EAAWlE,IAAO6B,GAAU,IAAA,EACnDA,EAASqC,EAAWlE,KAGrB,GACC6B,EAASA,GAAUA,EAAO4B,kBAClB5B,GAAU,MAAQA,EAAOwC,UAAY,GAE9C,OAAOxC,CACR,CAAA,SAQgByC,GAAapF,EAAUqF,EAAAA,CAUtC,OATAA,EAAMA,GAAO,CAAA,EACTrF,GAAY,MAA2B,OAAZA,GAAY,YAChCX,EAAQW,CAAAA,EAClBA,EAASsF,KAAK,SAAAxD,EAAAA,CACbsD,GAAatD,EAAOuD,CAAAA,CACrB,CAAA,EAEAA,EAAIlD,KAAKnC,CAAAA,GAEHqF,CACR,CASA,SAASP,GACRhB,EACAI,EACAM,EACAG,EAAAA,CAJD,IAmCMY,EACAC,EA9BCvF,EAAM6D,EAAW7D,IACjBF,EAAO+D,EAAW/D,KACpB2C,EAAWwB,EAAYM,CAAAA,EAkB3B,GACC9B,IAAa,MACZA,GACAzC,GAAOyC,EAASzC,KAChBF,IAAS2C,EAAS3C,MPpZE,IOqZnB2C,EAAQvB,KAEV,OAAOqD,EAAAA,GAVPG,GACCjC,GAAY,MP9YQ,IO8YCA,EAAQvB,KAA0B,EAAI,GAa5D,IAFIoE,EAAIf,EAAc,EAClBgB,EAAIhB,EAAc,EACfe,GAAK,GAAKC,EAAItB,EAAY7D,QAAQ,CACxC,GAAIkF,GAAK,EAAG,CAEX,IADA7C,EAAWwB,EAAYqB,CAAAA,IP7ZJ,IOgajB7C,EAAQvB,MACTlB,GAAOyC,EAASzC,KAChBF,IAAS2C,EAAS3C,KAElB,OAAOwF,EAERA,GACD,CAEA,GAAIC,EAAItB,EAAY7D,OAAQ,CAE3B,IADAqC,EAAWwB,EAAYsB,CAAAA,IP1aJ,IO6ajB9C,EAAQvB,MACTlB,GAAOyC,EAASzC,KAChBF,IAAS2C,EAAS3C,KAElB,OAAOyF,EAERA,GACD,CACD,CAGD,MAAA,EACD,CF7bA,SAASC,EAASC,EAAOzF,EAAK0F,EAAAA,CACzB1F,EAAI,CAAA,GAAM,IACbyF,EAAME,YAAY3F,EAAK0F,GAAgB,EAAKA,EAE5CD,EAAMzF,CAAAA,EADI0F,GAAS,KACN,GACa,OAATA,GAAS,UAAYvG,GAAmByG,KAAK5F,CAAAA,EACjD0F,EAEAA,EAAQ,IAEvB,CAAA,SAyBgBC,EAAYE,EAAKC,EAAMJ,EAAOK,EAAUrC,EAAAA,CACvD,IAAIsC,EAEJC,EAAG,GAAIH,GAAQ,QACd,GAAoB,OAATJ,GAAS,SACnBG,EAAIJ,MAAMS,QAAUR,MACd,CAKN,GAJuB,OAAZK,GAAY,WACtBF,EAAIJ,MAAMS,QAAUH,EAAW,IAG5BA,EACH,IAAKD,KAAQC,EACNL,GAASI,KAAQJ,GACtBF,EAASK,EAAIJ,MAAOK,EAAM,EAAA,EAK7B,GAAIJ,EACH,IAAKI,KAAQJ,EACPK,GAAYL,EAAMI,CAAAA,IAAUC,EAASD,CAAAA,GACzCN,EAASK,EAAIJ,MAAOK,EAAMJ,EAAMI,CAAAA,CAAAA,CAIpC,SAGQA,EAAK,CAAA,GAAM,KAAOA,EAAK,CAAA,GAAM,IACrCE,EAAaF,IAASA,EAAOA,EAAKK,QAAQvH,GAAe,IAAA,GAQxDkH,EAJAA,EAAKM,YAAAA,IAAiBP,GACtBC,GAAQ,cACRA,GAAQ,YAEDA,EAAKM,YAAAA,EAAchI,MAAM,CAAA,EACrB0H,EAAK1H,MAAM,CAAA,EAElByH,EAAGQ,IAAaR,EAAGQ,EAAc,CAAA,GACtCR,EAAGQ,EAAYP,EAAOE,CAAAA,EAAcN,EAEhCA,EACEK,EAQJL,EAAMY,EAAYP,EAASO,GAP3BZ,EAAMY,EAAYzH,EAClBgH,EAAIU,iBACHT,EACAE,EAAajH,EAAoBD,EACjCkH,CAAAA,GAMFH,EAAIW,oBACHV,EACAE,EAAajH,EAAoBD,EACjCkH,CAAAA,MAGI,CACN,GAAItC,GLzFuB,6BK6F1BoC,EAAOA,EAAKK,QAAQ,cAAe,GAAA,EAAKA,QAAQ,SAAU,GAAA,UAE1DL,GAAQ,SACRA,GAAQ,UACRA,GAAQ,QACRA,GAAQ,QACRA,GAAQ,QAGRA,GAAQ,YACRA,GAAQ,YACRA,GAAQ,WACRA,GAAQ,WACRA,GAAQ,QACRA,GAAQ,WACRA,KAAQD,EAER,GAAA,CACCA,EAAIC,CAAAA,EAAQJ,GAAgB,GAE5B,MAAMO,CAAAA,MACEQ,CAAAA,CAUU,OAATf,GAAS,aAETA,GAAS,MAASA,IAAlBA,IAAqCI,EAAK,CAAA,GAAM,IAG1DD,EAAIa,gBAAgBZ,CAAAA,EAFpBD,EAAIc,aAAab,EAAMA,GAAQ,WAAaJ,GAAS,EAAO,GAAKA,CAAAA,EAInE,CACD,CAOA,SAASkB,EAAiBZ,EAAAA,CAMzB,OAAO,SAAUS,EAAAA,CAChB,GAAIjF,KAAI6E,EAAa,CACpB,IAAMQ,EAAerF,KAAI6E,EAAYI,EAAE3G,KAAOkG,CAAAA,EAC9C,GAAIS,EAAEK,GAAe,KACpBL,EAAEK,EAAcjI,YAKN4H,EAAEK,EAAcD,EAAaP,EACvC,OAED,OAAOO,EAAaxI,EAAQ0I,MAAQ1I,EAAQ0I,MAAMN,CAAAA,EAAKA,CAAAA,CACxD,CACD,CACD,CAAA,SG7HgBzD,EACfK,EACAb,EACAC,EACAgB,EACAC,EACAC,EACAhB,EACAD,EACAkB,EACAhB,EAAAA,CAAAA,IAGIoE,EAkBEhF,EAAGiF,EAAOC,EAAUC,EAAUC,EAAUC,EACxCC,EACEC,EAMFC,EACAC,EAyGOzI,EA4BP0I,EACHC,EASS3I,EA6BNsE,EA4COtE,EAlPZ4I,EAAUpF,EAAS1C,KAIpB,GAAI0C,EAASzB,cAAb,OAAwC,OAAO,KR9DlB,IQiEzB0B,EAAQvB,MACX0C,EAAAA,CAAAA,ERpE0B,GQoETnB,EAAQvB,KAEzByC,EAAoB,CADpBjB,EAASF,EAAQ3B,IAAQ4B,EAAQ5B,GAAAA,IAI7BmG,EAAM3I,EAAOuC,MAASoG,EAAIxE,CAAAA,EAE/BqF,EAAO,GAAsB,OAAXD,GAAW,WAC5B,GAAA,CAkEC,GAhEIN,EAAW9E,EAAShD,MAClB+H,EACL,cAAeK,GAAWA,EAAQE,UAAUC,OAKzCP,GADJR,EAAMY,EAAQI,cACQvE,EAAcuD,EAAGlG,GAAAA,EACnC2G,EAAmBT,EACpBQ,EACCA,EAAShI,MAAMkG,MACfsB,EAAGrG,GACJ8C,EAGChB,EAAQ3B,IAEXuG,GADArF,EAAIQ,EAAQ1B,IAAc2B,EAAQ3B,KACNH,GAAwBqB,EAACiG,KAGjDV,EAEH/E,EAAQ1B,IAAckB,EAAI,IAAI4F,EAAQN,EAAUG,CAAAA,GAGhDjF,EAAQ1B,IAAckB,EAAI,IAAIV,EAC7BgG,EACAG,CAAAA,EAEDzF,EAAEjB,YAAc6G,EAChB5F,EAAE+F,OAASG,IAERV,GAAUA,EAASW,IAAInG,CAAAA,EAE3BA,EAAExC,MAAQ8H,EACLtF,EAAEoG,QAAOpG,EAAEoG,MAAQ,CAAA,GACxBpG,EAAET,QAAUkG,EACZzF,EAACiB,IAAkBQ,EACnBwD,EAAQjF,EAACC,IAAAA,GACTD,EAACqG,IAAoB,CAAA,EACrBrG,EAACsG,IAAmB,CAAA,GAIjBf,GAAoBvF,EAACuG,KAAe,OACvCvG,EAACuG,IAAcvG,EAAEoG,OAGdb,GAAoBK,EAAQY,0BAA4B,OACvDxG,EAACuG,KAAevG,EAAEoG,QACrBpG,EAACuG,IAAcjJ,EAAO,CAAE,EAAE0C,EAACuG,GAAAA,GAG5BjJ,EACC0C,EAACuG,IACDX,EAAQY,yBAAyBlB,EAAUtF,EAACuG,GAAAA,CAAAA,GAI9CrB,EAAWlF,EAAExC,MACb2H,EAAWnF,EAAEoG,MACbpG,EAAChB,IAAUwB,EAGPyE,EAEFM,GACAK,EAAQY,0BAA4B,MACpCxG,EAAEyG,oBAAsB,MAExBzG,EAAEyG,mBAAAA,EAGClB,GAAoBvF,EAAE0G,mBAAqB,MAC9C1G,EAACqG,IAAkBnG,KAAKF,EAAE0G,iBAAAA,MAErB,CAUN,GARCnB,GACAK,EAAQY,0BAA4B,MACpClB,IAAaJ,GACblF,EAAE2G,2BAA6B,MAE/B3G,EAAE2G,0BAA0BrB,EAAUG,CAAAA,EAAAA,CAIrCzF,EAACnB,MACAmB,EAAE4G,uBAAyB,MAC5B5G,EAAE4G,sBACDtB,EACAtF,EAACuG,IACDd,CAAAA,IAJEmB,IAMHpG,EAAQxB,KAAcyB,EAAQzB,KAC9B,CAkBD,IAhBIwB,EAAQxB,KAAcyB,EAAQzB,MAKjCgB,EAAExC,MAAQ8H,EACVtF,EAAEoG,MAAQpG,EAACuG,IACXvG,EAACC,IAAAA,IAGFO,EAAQ3B,IAAQ4B,EAAQ5B,IACxB2B,EAAQ9B,IAAa+B,EAAQ/B,IAC7B8B,EAAQ9B,IAAW2E,KAAK,SAAA5E,EAAAA,CACnBA,IAAOA,EAAKE,GAAW6B,EAC5B,CAAA,EAESxD,EAAI,EAAGA,EAAIgD,EAACsG,IAAiBlI,OAAQpB,IAC7CgD,EAACqG,IAAkBnG,KAAKF,EAACsG,IAAiBtJ,CAAAA,CAAAA,EAE3CgD,EAACsG,IAAmB,CAAA,EAEhBtG,EAACqG,IAAkBjI,QACtBuC,EAAYT,KAAKF,CAAAA,EAGlB,MAAM6F,CACP,CAEI7F,EAAE6G,qBAAuB,MAC5B7G,EAAE6G,oBAAoBvB,EAAUtF,EAACuG,IAAad,CAAAA,EAG3CF,GAAoBvF,EAAE8G,oBAAsB,MAC/C9G,EAACqG,IAAkBnG,KAAK,UAAA,CACvBF,EAAE8G,mBAAmB5B,EAAUC,EAAUC,CAAAA,CAC1C,CAAA,CAEF,CASA,GAPApF,EAAET,QAAUkG,EACZzF,EAAExC,MAAQ8H,EACVtF,EAACe,IAAcM,EACfrB,EAACnB,IAAAA,GAEG6G,EAAarJ,EAAO+D,IACvBuF,EAAQ,EACLJ,EAAkB,CAQrB,IAPAvF,EAAEoG,MAAQpG,EAACuG,IACXvG,EAACC,IAAAA,GAEGyF,GAAYA,EAAWlF,CAAAA,EAE3BwE,EAAMhF,EAAE+F,OAAO/F,EAAExC,MAAOwC,EAAEoG,MAAOpG,EAAET,OAAAA,EAE1BvC,EAAI,EAAGA,EAAIgD,EAACsG,IAAiBlI,OAAQpB,IAC7CgD,EAACqG,IAAkBnG,KAAKF,EAACsG,IAAiBtJ,CAAAA,CAAAA,EAE3CgD,EAACsG,IAAmB,CAAA,CACrB,KACC,IACCtG,EAACC,IAAAA,GACGyF,GAAYA,EAAWlF,CAAAA,EAE3BwE,EAAMhF,EAAE+F,OAAO/F,EAAExC,MAAOwC,EAAEoG,MAAOpG,EAAET,OAAAA,EAGnCS,EAAEoG,MAAQpG,EAACuG,UACHvG,EAACC,KAAAA,EAAa0F,EAAQ,IAIhC3F,EAAEoG,MAAQpG,EAACuG,IAEPvG,EAAE+G,iBAAmB,OACxBtF,EAAgBnE,EAAOA,EAAO,CAAA,EAAImE,CAAAA,EAAgBzB,EAAE+G,gBAAAA,CAAAA,GAGjDxB,GAAAA,CAAqBN,GAASjF,EAAEgH,yBAA2B,OAC9D5B,EAAWpF,EAAEgH,wBAAwB9B,EAAUC,CAAAA,GAOhDzE,EAASU,GACRC,EACAjE,EAJGkE,EADH0D,GAAO,MAAQA,EAAIlH,OAASuB,GAAY2F,EAAIhH,KAAO,KACZgH,EAAIxH,MAAMO,SAAWiH,CAAAA,EAIpC1D,EAAe,CAACA,CAAAA,EACxCd,EACAC,EACAgB,EACAC,EACAC,EACAhB,EACAD,EACAkB,EACAhB,CAAAA,EAGDZ,EAAEF,KAAOU,EAAQ3B,IAGjB2B,EAAQtB,KAAAA,KAEJc,EAACqG,IAAkBjI,QACtBuC,EAAYT,KAAKF,CAAAA,EAGdqF,IACHrF,EAACiG,IAAiBjG,EAACrB,GAAwB,KA2B7C,OAzBS8F,EAAAA,CAGR,GAFAjE,EAAQxB,IAAa,KAEjB4C,GAAeD,GAAqB,KACvC,GAAI8C,EAAEwC,KAAM,CAKX,IAJAzG,EAAQtB,KAAW0C,EAChBsF,IRlSsB,IQqSlBxG,GAAUA,EAAOwC,UAAY,GAAKxC,EAAO4B,aAC/C5B,EAASA,EAAO4B,YAGjBX,EAAkBA,EAAkBwF,QAAQzG,CAAAA,CAAAA,EAAW,KACvDF,EAAQ3B,IAAQ6B,CACjB,KACC,KAAS1D,EAAI2E,EAAkBvD,OAAQpB,KACtCS,EAAWkE,EAAkB3E,CAAAA,CAAAA,OAI/BwD,EAAQ3B,IAAQ4B,EAAQ5B,IACxB2B,EAAQ9B,IAAa+B,EAAQ/B,IAE9BrC,EAAOwC,IAAa4F,EAAGjE,EAAUC,CAAAA,CAClC,MAEAkB,GAAqB,MACrBnB,EAAQxB,KAAcyB,EAAQzB,KAE9BwB,EAAQ9B,IAAa+B,EAAQ/B,IAC7B8B,EAAQ3B,IAAQ4B,EAAQ5B,KAExB6B,EAASF,EAAQ3B,IAAQuI,GACxB3G,EAAQ5B,IACR2B,EACAC,EACAgB,EACAC,EACAC,EACAhB,EACAiB,EACAhB,CAAAA,EAMF,OAFKoE,EAAM3I,EAAQgL,SAASrC,EAAIxE,CAAAA,ER1UH,IQ4UtBA,EAAQtB,IAAAA,OAAuCwB,CACvD,CAOO,SAASS,GAAWR,EAAa2G,EAAM1G,EAAAA,CAC7C,QAAS5D,EAAI,EAAGA,EAAI4D,EAASxC,OAAQpB,IACpCoF,EAASxB,EAAS5D,CAAAA,EAAI4D,EAAAA,EAAW5D,CAAAA,EAAI4D,EAAAA,EAAW5D,CAAAA,CAAAA,EAG7CX,EAAOyC,KAAUzC,EAAOyC,IAASwI,EAAM3G,CAAAA,EAE3CA,EAAY0C,KAAK,SAAArD,EAAAA,CAChB,GAAA,CAECW,EAAcX,EAACqG,IACfrG,EAACqG,IAAoB,CAAA,EACrB1F,EAAY0C,KAAK,SAAAkE,EAAAA,CAEhBA,EAAGlJ,KAAK2B,CAAAA,CACT,CAAA,CAGD,OAFSyE,EAAAA,CACRpI,EAAOwC,IAAa4F,EAAGzE,EAAChB,GAAAA,CACzB,CACD,CAAA,CACD,CAiBA,SAASoI,GACRvD,EACArD,EACAC,EACAgB,EACAC,EACAC,EACAhB,EACAiB,EACAhB,EAAAA,CATD,IAeK5D,EAEAwK,EAEAC,EAEAC,EACAhE,EACAiE,EACAC,EAbA1C,EAAWzE,EAASjD,MACpB8H,EAAW9E,EAAShD,MACpB0F,EAAkC1C,EAAS1C,KAkB/C,GAJIoF,GAAY,MAAOxB,ER3YK,6BQ4YnBwB,GAAY,OAAQxB,ER1YA,qCQ2YnBA,IAAWA,ER5YS,gCQ8Y1BC,GAAqB,MACxB,IAAK3E,EAAI,EAAGA,EAAI2E,EAAkBvD,OAAQpB,IAMzC,IALA0G,EAAQ/B,EAAkB3E,CAAAA,IAOzB,iBAAkB0G,GAAAA,CAAAA,CAAWR,IAC5BA,EAAWQ,EAAMmE,WAAa3E,EAAWQ,EAAMR,UAAY,GAC3D,CACDW,EAAMH,EACN/B,EAAkB3E,CAAAA,EAAK,KACvB,KACD,EAIF,GAAI6G,GAAO,KAAM,CAChB,GAAIX,GAAY,KACf,OAAO4E,SAASC,eAAezC,CAAAA,EAGhCzB,EAAMiE,SAASE,gBACdtG,EACAwB,EACAoC,EAAS2C,IAAM3C,CAAAA,EAKZ1D,IACCvF,EAAO6L,KACV7L,EAAO6L,IAAoB1H,EAAUmB,CAAAA,EACtCC,EAAAA,IAGDD,EAAoB,IACrB,CAEA,GAAIuB,IAAa,KAEZgC,IAAaI,GAAc1D,GAAeiC,EAAIsE,OAAS7C,IAC1DzB,EAAIsE,KAAO7C,OAEN,CASN,GAPA3D,EAAoBA,GAAqBvF,EAAMiC,KAAKwF,EAAIuE,UAAAA,EAExDlD,EAAWzE,EAASjD,OAASP,EAAAA,CAKxB2E,GAAeD,GAAqB,KAExC,IADAuD,EAAW,CAAA,EACNlI,EAAI,EAAGA,EAAI6G,EAAIwE,WAAWjK,OAAQpB,IAEtCkI,GADAxB,EAAQG,EAAIwE,WAAWrL,CAAAA,GACR8G,IAAAA,EAAQJ,EAAMA,MAI/B,IAAK1G,KAAKkI,EAET,GADAxB,EAAQwB,EAASlI,CAAAA,EACbA,GAAK,YACF,GAAIA,GAAK,0BACfyK,EAAU/D,UACA,EAAE1G,KAAKsI,GAAW,CAC5B,GACEtI,GAAK,SAAW,iBAAkBsI,GAClCtI,GAAK,WAAa,mBAAoBsI,EAEvC,SAED3B,EAAYE,EAAK7G,EAAG,KAAM0G,EAAOhC,CAAAA,CAClC,EAKD,IAAK1E,KAAKsI,EACT5B,EAAQ4B,EAAStI,CAAAA,EACbA,GAAK,WACR0K,EAAchE,EACJ1G,GAAK,0BACfwK,EAAU9D,EACA1G,GAAK,QACf2K,EAAajE,EACH1G,GAAK,UACf4K,EAAUlE,EAER9B,GAA+B,OAAT8B,GAAS,YACjCwB,EAASlI,CAAAA,IAAO0G,GAEhBC,EAAYE,EAAK7G,EAAG0G,EAAOwB,EAASlI,CAAAA,EAAI0E,CAAAA,EAK1C,GAAI8F,EAGD5F,GACC6F,IACAD,EAAOc,SAAYb,EAAOa,QAC1Bd,EAAOc,SAAYzE,EAAI0E,aAEzB1E,EAAI0E,UAAYf,EAAOc,QAGxB9H,EAAQ9B,IAAa,CAAA,UAEjB+I,IAAS5D,EAAI0E,UAAY,IAE7BnH,GACCyC,EACAzG,EAAQsK,CAAAA,EAAeA,EAAc,CAACA,CAAAA,EACtClH,EACAC,EACAgB,EACAyB,GAAY,gBRvgBe,+BQugBqBxB,EAChDC,EACAhB,EACAgB,EACGA,EAAkB,CAAA,EAClBlB,EAAQ/B,KAAce,EAAcgB,EAAU,CAAA,EACjDmB,EACAhB,CAAAA,EAIGe,GAAqB,KACxB,IAAK3E,EAAI2E,EAAkBvD,OAAQpB,KAClCS,EAAWkE,EAAkB3E,CAAAA,CAAAA,EAM3B4E,IACJ5E,EAAI,QACAkG,GAAY,YAAcyE,GAAc,KAC3C9D,EAAIa,gBAAgB,OAAA,EAEpBiD,IAFoB,SAOnBA,IAAe9D,EAAI7G,CAAAA,GAClBkG,GAAY,YAAZA,CAA2ByE,GAI3BzE,GAAY,UAAYyE,IAAezC,EAASlI,CAAAA,IAElD2G,EAAYE,EAAK7G,EAAG2K,EAAYzC,EAASlI,CAAAA,EAAI0E,CAAAA,EAG9C1E,EAAI,UACA4K,IADA,QACyBA,IAAY/D,EAAI7G,CAAAA,GAC5C2G,EAAYE,EAAK7G,EAAG4K,EAAS1C,EAASlI,CAAAA,EAAI0E,CAAAA,EAG7C,CAEA,OAAOmC,CACR,CAQO,SAASzB,EAASnE,EAAKyF,EAAOjF,EAAAA,CACpC,GAAA,CACC,GAAkB,OAAPR,GAAO,WAAY,CAC7B,IAAIuK,EAAuC,OAAhBvK,EAAGiB,KAAa,WACvCsJ,GAEHvK,EAAGiB,IAAAA,EAGCsJ,GAAiB9E,GAAS,OAI9BzF,EAAGiB,IAAYjB,EAAIyF,CAAAA,EAErB,MAAOzF,EAAImB,QAAUsE,CAGtB,OAFSe,EAAAA,CACRpI,EAAOwC,IAAa4F,EAAGhG,CAAAA,CACxB,CACD,CASO,SAASqE,GAAQrE,EAAOsE,EAAa0F,EAAAA,CAArC,IACFC,EAsBM1L,EAbV,GARIX,EAAQyG,SAASzG,EAAQyG,QAAQrE,CAAAA,GAEhCiK,EAAIjK,EAAMR,OACTyK,EAAEtJ,SAAWsJ,EAAEtJ,UAAYX,EAAKI,KACpCuD,EAASsG,EAAG,KAAM3F,CAAAA,IAIf2F,EAAIjK,EAAKK,MAAgB,KAAM,CACnC,GAAI4J,EAAEC,qBACL,GAAA,CACCD,EAAEC,qBAAAA,CAGH,OAFSlE,EAAAA,CACRpI,EAAOwC,IAAa4F,EAAG1B,CAAAA,CACxB,CAGD2F,EAAE5I,KAAO4I,EAAC3H,IAAc,IACzB,CAEA,GAAK2H,EAAIjK,EAAKC,IACb,IAAS1B,EAAI,EAAGA,EAAI0L,EAAEtK,OAAQpB,IACzB0L,EAAE1L,CAAAA,GACL8F,GACC4F,EAAE1L,CAAAA,EACF+F,EACA0F,GAAmC,OAAdhK,EAAMX,MAAQ,UAARA,EAM1B2K,GACJhL,EAAWgB,EAAKI,GAAAA,EAGjBJ,EAAKK,IAAcL,EAAKE,GAAWF,EAAKI,IAAAA,MACzC,CAGA,SAASqH,GAAS1I,EAAO4I,EAAO7G,EAAAA,CAC/B,OAAOC,KAAKT,YAAYvB,EAAO+B,CAAAA,CAChC,CCtoBO,SAASwG,GAAOtH,EAAO4C,EAAWuH,EAAAA,CAAlC,IAWFhH,EAOAnB,EAQAE,EACHC,EAzBGS,GAAayG,WAChBzG,EAAYyG,SAASe,iBAGlBxM,EAAOsC,IAAQtC,EAAOsC,GAAOF,EAAO4C,CAAAA,EAYpCZ,GAPAmB,EAAoC,OAAfgH,GAAe,YAQrC,KACCA,GAAeA,EAAWlK,KAAe2C,EAAS3C,IAMlDiC,EAAc,CAAA,EACjBC,EAAW,CAAA,EACZI,EACCK,EAPD5C,GAAAA,CAAWmD,GAAegH,GAAgBvH,GAAS3C,IAClDb,GAAcwB,EAAU,KAAM,CAACZ,CAAAA,CAAAA,EAU/BgC,GAAYxD,EACZA,EACAoE,EAAUH,aAAAA,CACTU,GAAegH,EACb,CAACA,CAAAA,EACDnI,EACC,KACAY,EAAUyH,WACT1M,EAAMiC,KAAKgD,EAAU+G,UAAAA,EACrB,KACLzH,EAAAA,CACCiB,GAAegH,EACbA,EACAnI,EACCA,EAAQ5B,IACRwC,EAAUyH,WACdlH,EACAhB,CAAAA,EAIDO,GAAWR,EAAalC,EAAOmC,CAAAA,CAChC,CAOO,SAASmI,GAAQtK,EAAO4C,EAAAA,CAC9B0E,GAAOtH,EAAO4C,EAAW0H,EAAAA,CAC1B,CChEgB,SAAAC,GAAavK,EAAOjB,EAAOO,EAAAA,CAA3B,IAEdC,EACAC,EACAjB,EAEGsB,EALAJ,EAAkBZ,EAAO,CAAE,EAAEmB,EAAMjB,KAAAA,EAWvC,IAAKR,KAJDyB,EAAMX,MAAQW,EAAMX,KAAKQ,eAC5BA,EAAeG,EAAMX,KAAKQ,cAGjBd,EACLR,GAAK,MAAOgB,EAAMR,EAAMR,CAAAA,EACnBA,GAAK,MAAOiB,EAAMT,EAAMR,CAAAA,EAEhCkB,EAAgBlB,CAAAA,EADRQ,EAAMR,CAAAA,IACEA,QADkBsB,IAApBtB,OACOsB,EAAatB,CAAAA,EAEbQ,EAAMR,CAAAA,EAS7B,OALImB,UAAUC,OAAS,IACtBF,EAAgBH,SACfI,UAAUC,OAAS,EAAIhC,EAAMiC,KAAKF,UAAW,CAAA,EAAKJ,GAG7CQ,EACNE,EAAMX,KACNI,EACAF,GAAOS,EAAMT,IACbC,GAAOQ,EAAMR,IACb,IAAA,CAEF,CAAA,SJ3CgBgL,GAAcC,EAAcC,EAAAA,CAG3C,IAAM5J,EAAU,CACfT,IAHDqK,EAAY,OAASnM,KAIpB2B,GAAeuK,EAEfE,SAAAA,SAAS5L,EAAO6L,EAAAA,CAIf,OAAO7L,EAAMO,SAASsL,CAAAA,CACvB,EAEAC,SAAA,SAAS9L,EAAAA,CAAT,IAGM+L,EACAC,EA8BL,OAjCKhK,KAAKuH,kBAELwC,EAAO,IAAIE,KACXD,EAAM,CAAA,GACNL,CAAAA,EAAa3J,KAEjBA,KAAKuH,gBAAkB,UAAA,CAAA,OAAMyC,CAAG,EAEhChK,KAAKmJ,qBAAuB,UAAA,CAC3BY,EAAO,IACR,EAEA/J,KAAKoH,sBAAwB,SAAU8C,EAAAA,CAClClK,KAAKhC,MAAMkG,QAAUgG,EAAOhG,OAC/B6F,EAAKI,QAAQ,SAAA3J,EAAAA,CACZA,EAACnB,IAAAA,GACDkB,EAAcC,CAAAA,CACf,CAAA,CAEF,EAEAR,KAAK2G,IAAM,SAAAnG,EAAAA,CACVuJ,EAAKK,IAAI5J,CAAAA,EACT,IAAI6J,EAAM7J,EAAE2I,qBACZ3I,EAAE2I,qBAAuB,UAAA,CACpBY,GACHA,EAAKO,OAAO9J,CAAAA,EAET6J,GAAKA,EAAIxL,KAAK2B,CAAAA,CACnB,CACD,GAGMxC,EAAMO,QACd,CAAA,EASD,OAAQwB,EAAQ+J,SAAQ3K,GAAeY,EAAQ6J,SAASpD,YACvDzG,CACF,CLrCanD,EAAQc,GAAUd,MChBzBC,EAAU,CACfwC,ISHe,SAAYkL,EAAOtL,EAAOgC,EAAUuJ,EAAAA,CAQnD,QANIzJ,EAEH0J,EAEAC,EAEOzL,EAAQA,EAAKE,IACpB,IAAK4B,EAAY9B,EAAKK,MAAAA,CAAiByB,EAAS5B,GAC/C,GAAA,CAcC,IAbAsL,EAAO1J,EAAUxB,cAELkL,EAAKE,0BAA4B,OAC5C5J,EAAU6J,SAASH,EAAKE,yBAAyBJ,CAAAA,CAAAA,EACjDG,EAAU3J,EAASN,KAGhBM,EAAU8J,mBAAqB,OAClC9J,EAAU8J,kBAAkBN,EAAOC,GAAa,CAAE,CAAA,EAClDE,EAAU3J,EAASN,KAIhBiK,EACH,OAAQ3J,EAAS0F,IAAiB1F,CAIpC,OAFSkE,EAAAA,CACRsF,EAAQtF,CACT,CAIF,MAAMsF,CACP,CAAA,ERvCIzN,EAAU,EA2FDC,GAAiB,SAAAkC,EAAAA,CAAK,OAClCA,GAAS,MAAQA,EAAMM,aHhFCuL,IGgFuB,ECrEhDhL,EAAcwG,UAAUsE,SAAW,SAAUG,EAAQC,EAAAA,CAEpD,IAAIC,EAEHA,EADGjL,KAAI+G,KAAe,MAAQ/G,KAAI+G,MAAgB/G,KAAK4G,MACnD5G,KAAI+G,IAEJ/G,KAAI+G,IAAcjJ,EAAO,CAAE,EAAEkC,KAAK4G,KAAAA,EAGlB,OAAVmE,GAAU,aAGpBA,EAASA,EAAOjN,EAAO,CAAA,EAAImN,CAAAA,EAAIjL,KAAKhC,KAAAA,GAGjC+M,GACHjN,EAAOmN,EAAGF,CAAAA,EAIPA,GAAU,MAEV/K,KAAIR,MACHwL,GACHhL,KAAI8G,IAAiBpG,KAAKsK,CAAAA,EAE3BzK,EAAcP,IAAAA,EAEhB,EAQAF,EAAcwG,UAAU4E,YAAc,SAAUF,EAAAA,CAC3ChL,KAAIR,MAIPQ,KAAIX,IAAAA,GACA2L,GAAUhL,KAAI6G,IAAkBnG,KAAKsK,CAAAA,EACzCzK,EAAcP,IAAAA,EAEhB,EAYAF,EAAcwG,UAAUC,OAAS1G,EA8F7B7C,EAAgB,CAAA,EAadE,EACa,OAAXiO,SAAW,WACfA,QAAQ7E,UAAUmB,KAAK2D,KAAKD,QAAQE,QAAAA,CAAAA,EACpCC,WAuBEnO,EAAY,SAACoO,EAAGC,EAAAA,CAAM,OAAAD,EAAC/L,IAAAJ,IAAiBoM,EAAChM,IAAAJ,GAAc,EAuB7DuB,EAAOC,IAAkB,ECjOnBxD,GAAgB,8BAalBC,EAAa,EAkJXC,EAAa8H,EAAAA,EAAiB,EAC9B7H,EAAoB6H,EAAAA,EAAiB,EC7KhC5H,GAAI","names":["slice","options","vnodeId","isValidElement","rerenderQueue","prevDebounce","defer","depthSort","CAPTURE_REGEX","eventClock","eventProxy","eventProxyCapture","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","isArray","Array","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","length","call","defaultProps","createVNode","original","vnode","__k","__","__b","__e","__c","constructor","__v","__i","__u","createRef","current","Fragment","BaseComponent","context","this","getDomSibling","childIndex","sibling","updateParentDomPointers","child","base","enqueueRender","c","__d","push","process","__r","debounceRendering","renderQueueLength","component","newVNode","oldVNode","oldDom","commitQueue","refQueue","sort","shift","__P","diff","__n","namespaceURI","commitRoot","diffChildren","parentDom","renderResult","newParentVNode","oldParentVNode","globalContext","namespace","excessDomChildren","isHydrating","childVNode","newDom","firstChildDom","result","oldChildren","newChildrenLength","constructNewChildrenArray","applyRef","insert","nextSibling","skewedIndex","matchingIndex","oldChildrenLength","remainingOldChildren","skew","String","findMatchingIndex","unmount","parentVNode","contains","insertBefore","nodeType","toChildArray","out","some","x","y","setStyle","style","value","setProperty","test","dom","name","oldValue","useCapture","o","cssText","replace","toLowerCase","l","_attached","addEventListener","removeEventListener","e","removeAttribute","setAttribute","createEventProxy","eventHandler","_dispatched","event","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","isClassComponent","provider","componentContext","renderHook","count","newType","outer","prototype","render","contextType","__E","doRender","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","then","MODE_HYDRATE","indexOf","diffElementNodes","diffed","root","cb","newHtml","oldHtml","newChildren","inputValue","checked","localName","document","createTextNode","createElementNS","is","__m","data","childNodes","attributes","__html","innerHTML","hasRefUnmount","skipRemove","r","componentWillUnmount","replaceNode","documentElement","firstChild","hydrate","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","Set","_props","forEach","add","old","delete","error","errorInfo","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","undefined","update","callback","s","forceUpdate","Promise","bind","resolve","setTimeout","a","b"],"sources":["../esm/npm/preact@10.25.4/node_modules/preact/src/constants.js","../esm/npm/preact@10.25.4/node_modules/preact/src/util.js","../esm/npm/preact@10.25.4/node_modules/preact/src/options.js","../esm/npm/preact@10.25.4/node_modules/preact/src/create-element.js","../esm/npm/preact@10.25.4/node_modules/preact/src/component.js","../esm/npm/preact@10.25.4/node_modules/preact/src/diff/props.js","../esm/npm/preact@10.25.4/node_modules/preact/src/create-context.js","../esm/npm/preact@10.25.4/node_modules/preact/src/diff/children.js","../esm/npm/preact@10.25.4/node_modules/preact/src/diff/index.js","../esm/npm/preact@10.25.4/node_modules/preact/src/render.js","../esm/npm/preact@10.25.4/node_modules/preact/src/clone-element.js","../esm/npm/preact@10.25.4/node_modules/preact/src/diff/catch-error.js"],"sourcesContent":["/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 \u003c\u003c 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 \u003c\u003c 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 \u003c\u003c 2;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 \u003c\u003c 1;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nexport const XHTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nexport const MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n\nexport const UNDEFINED = undefined;\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O \u0026 P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O \u0026 P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O \u0026 P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {import('./index').ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tif (node \u0026\u0026 node.parentNode) node.parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\nimport { UNDEFINED } from './constants';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array\u003cimport('.').ComponentChildren\u003e} [children] The children of the\n * virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length \u003e 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length \u003e 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' \u0026\u0026 type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === UNDEFINED) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {import('./internal').VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t_component: null,\n\t\tconstructor: UNDEFINED,\n\t\t_original: original == null ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null \u0026\u0026 options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =\u003e\n\tvnode != null \u0026\u0026 vnode.constructor == UNDEFINED;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) =\u003e object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() =\u003e void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null \u0026\u0026 this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() =\u003e void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex \u003c vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null \u0026\u0026 sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (component._parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags \u0026 MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags \u0026 MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null \u0026\u0026 vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i \u003c vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null \u0026\u0026 child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array\u003cimport('./internal').Component\u003e}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty \u0026\u0026\n\t\t\t(c._dirty = true) \u0026\u0026\n\t\t\trerenderQueue.push(c) \u0026\u0026\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {import('./internal').Component} a\n * @param {import('./internal').Component} b\n */\nconst depthSort = (a, b) =\u003e a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length \u003e renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n","import { IS_NON_DIMENSIONAL, SVG_NAMESPACE } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] == '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\nconst CAPTURE_REGEX = /(PointerCapture)$|Capture$/i;\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name == 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value \u0026\u0026 name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] == 'o' \u0026\u0026 name[1] == 'n') {\n\t\tuseCapture = name != (name = name.replace(CAPTURE_REGEX, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (\n\t\t\tname.toLowerCase() in dom ||\n\t\t\tname == 'onFocusOut' ||\n\t\t\tname == 'onFocusIn'\n\t\t)\n\t\t\tname = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == SVG_NAMESPACE) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --\u003e href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --\u003e class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' \u0026\u0026\n\t\t\tname != 'height' \u0026\u0026\n\t\t\tname != 'href' \u0026\u0026\n\t\t\tname != 'list' \u0026\u0026\n\t\t\tname != 'form' \u0026\u0026\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' \u0026\u0026\n\t\t\tname != 'download' \u0026\u0026\n\t\t\tname != 'rowSpan' \u0026\u0026\n\t\t\tname != 'colSpan' \u0026\u0026\n\t\t\tname != 'role' \u0026\u0026\n\t\t\tname != 'popover' \u0026\u0026\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null \u0026\u0026 (value !== false || name[4] == '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' \u0026\u0026 value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {import('../internal').PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e._dispatched == null) {\n\t\t\t\te._dispatched = eventClock++;\n\n\t\t\t\t// When `e._dispatched` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e._dispatched \u003c eventHandler._attached) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {Set\u003cimport('./internal').Component\u003e | null} */\n\t\t\t\tlet subs = new Set();\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () =\u003e ctx;\n\n\t\t\t\tthis.componentWillUnmount = () =\u003e {\n\t\t\t\t\tsubs = null;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.forEach(c =\u003e {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c =\u003e {\n\t\t\t\t\tsubs.add(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () =\u003e {\n\t\t\t\t\t\tif (subs) {\n\t\t\t\t\t\t\tsubs.delete(c);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType =\n\t\tcontext);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport {\n\tEMPTY_OBJ,\n\tEMPTY_ARR,\n\tINSERT_VNODE,\n\tMATCHED,\n\tUNDEFINED\n} from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array\u003cPreactElement\u003e} excessDomChildren\n * @param {Array\u003cComponent\u003e} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null \u0026\u0026 oldParentVNode != EMPTY_OBJ \u0026\u0026 oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode \u0026\u0026 oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\toldDom = constructNewChildrenArray(\n\t\tnewParentVNode,\n\t\trenderResult,\n\t\toldChildren,\n\t\toldDom,\n\t\tnewChildrenLength\n\t);\n\n\tfor (i = 0; i \u003c newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\t\tif (childVNode == null) continue;\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tlet result = diff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref \u0026\u0026 oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null \u0026\u0026 newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags \u0026 INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (typeof childVNode.type == 'function' \u0026\u0026 result !== UNDEFINED) {\n\t\t\toldDom = result;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags \u0026= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\treturn oldDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(\n\tnewParentVNode,\n\trenderResult,\n\toldChildren,\n\toldDom,\n\tnewChildrenLength\n) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = new Array(newChildrenLength);\n\tfor (i = 0; i \u003c newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tnewParentVNode._children[i] = null;\n\t\t\tcontinue;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. \u003cdiv\u003e{reuse}{reuse}\u003c/div\u003e) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM \u0026 etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === UNDEFINED \u0026\u0026 childVNode._depth \u003e 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t//   const reuse = \u003cdiv /\u003e\n\t\t\t//   \u003cdiv\u003e{reuse}\u003cspan /\u003e{reuse}\u003c/div\u003e\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\tconst skewedIndex = i + skew;\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tconst matchingIndex = (childVNode._index = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t));\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex != skewedIndex) {\n\t\t\t// When we move elements around i.e. [0, 1, 2] --\u003e [1, 0, 2]\n\t\t\t// --\u003e we diff 1, we find it at position 1 while our skewed index is 0 and our skew is 0\n\t\t\t//     we set the skew to 1 as we found an offset.\n\t\t\t// --\u003e we diff 0, we find it at position 0 while our skewed index is at 2 and our skew is 1\n\t\t\t//     this makes us increase the skew again.\n\t\t\t// --\u003e we diff 2, we find it at position 2 while our skewed index is at 4 and our skew is 2\n\t\t\t//\n\t\t\t// this becomes an optimization question where currently we see a 1 element offset as an insertion\n\t\t\t// or deletion i.e. we optimize for [0, 1, 2] --\u003e [9, 0, 1, 2]\n\t\t\t// while a more than 1 offset we see as a swap.\n\t\t\t// We could probably build heuristics for having an optimized course of action here as well, but\n\t\t\t// might go at the cost of some bytes.\n\t\t\t//\n\t\t\t// If we wanted to optimize for i.e. only swaps we'd just do the last two code-branches and have\n\t\t\t// only the first item be a re-scouting and all the others fall in their skewed counter-part.\n\t\t\t// We could also further optimize for swaps\n\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\tskew--;\n\t\t\t} else if (matchingIndex == skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else {\n\t\t\t\tif (matchingIndex \u003e skewedIndex) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\n\t\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t\t// match the new skew index (i + new skew)\n\t\t\t\t// In the former two branches we know that it matches after skewing\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i \u003c oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null \u0026\u0026 (oldVNode._flags \u0026 MATCHED) == 0) {\n\t\t\t\tif (oldVNode._dom == oldDom) {\n\t\t\t\t\toldDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children \u0026\u0026 i \u003c children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tif (oldDom \u0026\u0026 parentVNode.type \u0026\u0026 !parentDom.contains(oldDom)) {\n\t\t\toldDom = getDomSibling(parentVNode);\n\t\t}\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\tdo {\n\t\toldDom = oldDom \u0026\u0026 oldDom.nextSibling;\n\t} while (oldDom != null \u0026\u0026 oldDom.nodeType == 8);\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child =\u003e {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren \u003e 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren \u003e 0`) children to find and compare against.\n\t//\n\t// If there is an unkeyed functional VNode, that isn't a built-in like our Fragment,\n\t// we should not search as we risk re-using state of an unrelated VNode. (reverted for now)\n\tlet shouldSearch =\n\t\t// (typeof type != 'function' || type === Fragment || key) \u0026\u0026\n\t\tremainingOldChildren \u003e\n\t\t(oldVNode != null \u0026\u0026 (oldVNode._flags \u0026 MATCHED) == 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode \u0026\u0026\n\t\t\tkey == oldVNode.key \u0026\u0026\n\t\t\ttype === oldVNode.type \u0026\u0026\n\t\t\t(oldVNode._flags \u0026 MATCHED) == 0)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\tlet x = skewedIndex - 1;\n\t\tlet y = skewedIndex + 1;\n\t\twhile (x \u003e= 0 || y \u003c oldChildren.length) {\n\t\t\tif (x \u003e= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode \u0026\u0026\n\t\t\t\t\t(oldVNode._flags \u0026 MATCHED) == 0 \u0026\u0026\n\t\t\t\t\tkey == oldVNode.key \u0026\u0026\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y \u003c oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode \u0026\u0026\n\t\t\t\t\t(oldVNode._flags \u0026 MATCHED) == 0 \u0026\u0026\n\t\t\t\t\tkey == oldVNode.key \u0026\u0026\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n","import {\n\tEMPTY_OBJ,\n\tMATH_NAMESPACE,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE,\n\tSVG_NAMESPACE,\n\tUNDEFINED,\n\tXHTML_NAMESPACE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\n\n/**\n * @template {any} T\n * @typedef {import('../internal').Ref\u003cT\u003e} Ref\u003cT\u003e\n */\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array\u003cPreactElement\u003e} excessDomChildren\n * @param {Array\u003cComponent\u003e} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== UNDEFINED) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags \u0026 MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags \u0026 MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\t\t\tconst isClassComponent =\n\t\t\t\t'prototype' in newType \u0026\u0026 newType.prototype.render;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp \u0026\u0026 globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (isClassComponent) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (isClassComponent \u0026\u0026 c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (isClassComponent \u0026\u0026 newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent \u0026\u0026\n\t\t\t\t\tnewType.getDerivedStateFromProps == null \u0026\u0026\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent \u0026\u0026 c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent \u0026\u0026\n\t\t\t\t\tnewType.getDerivedStateFromProps == null \u0026\u0026\n\t\t\t\t\tnewProps !== oldProps \u0026\u0026\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force \u0026\u0026\n\t\t\t\t\t((c.shouldComponentUpdate != null \u0026\u0026\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original == oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original != oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.some(vnode =\u003e {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i \u003c c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent \u0026\u0026 c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() =\u003e {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif (isClassComponent) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i \u003c c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty \u0026\u0026 ++count \u003c 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (isClassComponent \u0026\u0026 !isNew \u0026\u0026 c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null \u0026\u0026 tmp.type === Fragment \u0026\u0026 tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\toldDom = diffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnamespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags \u0026= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tif (e.then) {\n\t\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t\t: MODE_SUSPENDED;\n\n\t\t\t\t\twhile (oldDom \u0026\u0026 oldDom.nodeType == 8 \u0026\u0026 oldDom.nextSibling) {\n\t\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = excessDomChildren.length; i--; ) {\n\t\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null \u0026\u0026\n\t\tnewVNode._original == oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\toldDom = newVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n\n\treturn newVNode._flags \u0026 MODE_SUSPENDED ? undefined : oldDom;\n}\n\n/**\n * @param {Array\u003cComponent\u003e} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\tfor (let i = 0; i \u003c refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c =\u003e {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb =\u003e {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array\u003cPreactElement\u003e} excessDomChildren\n * @param {Array\u003cComponent\u003e} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting namespaces when descending through the tree.\n\tif (nodeType == 'svg') namespace = SVG_NAMESPACE;\n\telse if (nodeType == 'math') namespace = MATH_NAMESPACE;\n\telse if (!namespace) namespace = XHTML_NAMESPACE;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i \u003c excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue \u0026\u0026\n\t\t\t\t'setAttribute' in value == !!nodeType \u0026\u0026\n\t\t\t\t(nodeType ? value.localName == nodeType : value.nodeType == 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType == null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = document.createElementNS(\n\t\t\tnamespace,\n\t\t\tnodeType,\n\t\t\tnewProps.is \u0026\u0026 newProps\n\t\t);\n\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tif (isHydrating) {\n\t\t\tif (options._hydrationMismatch)\n\t\t\t\toptions._hydrationMismatch(newVNode, excessDomChildren);\n\t\t\tisHydrating = false;\n\t\t}\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps \u0026\u0026 (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren \u0026\u0026 slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating \u0026\u0026 excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i \u003c dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (!(i in newProps)) {\n\t\t\t\tif (\n\t\t\t\t\t(i == 'value' \u0026\u0026 'defaultValue' in newProps) ||\n\t\t\t\t\t(i == 'checked' \u0026\u0026 'defaultChecked' in newProps)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tsetProperty(dom, i, null, value, namespace);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\t(!isHydrating || typeof value == 'function') \u0026\u0026\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating \u0026\u0026\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html \u0026\u0026\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnodeType == 'foreignObject' ? XHTML_NAMESPACE : namespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children \u0026\u0026 getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (nodeType == 'progress' \u0026\u0026 inputValue == null) {\n\t\t\t\tdom.removeAttribute('value');\n\t\t\t} else if (\n\t\t\t\tinputValue !== UNDEFINED \u0026\u0026\n\t\t\t\t// #2756 For the \u003cprogress\u003e-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType == 'progress' \u0026\u0026 !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix \u003cselect\u003e value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType == 'option' \u0026\u0026 inputValue !== oldProps[i]))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, inputValue, oldProps[i], namespace);\n\t\t\t}\n\n\t\t\ti = 'checked';\n\t\t\tif (checked !== UNDEFINED \u0026\u0026 checked !== dom[i]) {\n\t\t\t\tsetProperty(dom, i, checked, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {Ref\u003cany\u003e \u0026 { _unmount?: unknown }} ref\n * @param {any} value\n * @param {VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') {\n\t\t\tlet hasRefUnmount = typeof ref._unmount == 'function';\n\t\t\tif (hasRefUnmount) {\n\t\t\t\t// @ts-ignore TS doesn't like moving narrowing checks into variables\n\t\t\t\tref._unmount();\n\t\t\t}\n\n\t\t\tif (!hasRefUnmount || value != null) {\n\t\t\t\t// Store the cleanup function on the function\n\t\t\t\t// instance object itself to avoid shape\n\t\t\t\t// transitioning vnode\n\t\t\t\tref._unmount = ref(value);\n\t\t\t}\n\t\t} else ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {VNode} vnode The virtual node to unmount\n * @param {VNode} parentVNode The parent of the VNode that initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i \u003c r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type != 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\tvnode._component = vnode._parent = vnode._dom = UNDEFINED;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\t// https://github.com/preactjs/preact/issues/3794\n\tif (parentDom == document) {\n\t\tparentDom = document.documentElement;\n\t}\n\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode == 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode \u0026\u0026 replaceNode._children) || parentDom._children;\n\n\tvnode = ((!isHydrating \u0026\u0026 replaceNode) || parentDom)._children =\n\t\tcreateElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [],\n\t\trefQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.namespaceURI,\n\t\t!isHydrating \u0026\u0026 replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t\t? null\n\t\t\t\t: parentDom.firstChild\n\t\t\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating \u0026\u0026 replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t\t? oldVNode._dom\n\t\t\t\t: parentDom.firstChild,\n\t\tisHydrating,\n\t\trefQueue\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode, refQueue);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\nimport { UNDEFINED } from './constants';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its\n * children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array\u003cimport('./internal').ComponentChildren\u003e} rest Any additional arguments will be used\n * as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\n\tlet defaultProps;\n\n\tif (vnode.type \u0026\u0026 vnode.type.defaultProps) {\n\t\tdefaultProps = vnode.type.defaultProps;\n\t}\n\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse if (props[i] === UNDEFINED \u0026\u0026 defaultProps !== UNDEFINED) {\n\t\t\tnormalizedProps[i] = defaultProps[i];\n\t\t} else {\n\t\t\tnormalizedProps[i] = props[i];\n\t\t}\n\t}\n\n\tif (arguments.length \u003e 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length \u003e 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw the error that was caught (except\n * for unmounting when this parameter is the highest parent that was being\n * unmounted)\n * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component,\n\t\t/** @type {import('../internal').ComponentType} */\n\t\tctor,\n\t\t/** @type {boolean} */\n\t\thandled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) \u0026\u0026 !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor \u0026\u0026 ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n"],"version":3}
