diff --git a/js/RichText-DZ5ddyxg.chunk.mjs.map b/js/RichText-DZ5ddyxg.chunk.mjs.map index 092dd33474..cacdde9653 100644 --- a/js/RichText-DZ5ddyxg.chunk.mjs.map +++ b/js/RichText-DZ5ddyxg.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"mappings":"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AA5hE,KAAA,aACA,EACA,EACA,UACA,gBACA,qBACA,MACA,EACA,SACA,KAAA6hE,EAAA,CACA,wBAAAA,EAAA,qBAEA,oBACA,qBAAAA,EAAA,EACA,EACA,CACA,CACA,yoBClCApC,GAAA,CACA,+BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,qzBChBAA,GAAA,CACA,iBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,4mBChBAA,GAAA,CACA,iBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,sjBChBAA,GAAA,CACA,wBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,sjBChBAA,GAAA,CACA,oBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,ymBChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,gvBChBAA,GAAA,CACA,kBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,ilBChBAA,GAAA,CACA,wBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,soBChBAA,GAAA,CACA,0BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,utBChBAA,GAAA,CACA,2BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,05BChBAA,GAAA,CACA,kBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,6lBChBAA,GAAA,CACA,sBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,+wBChBAA,GAAA,CACA,sBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,yjBChBAA,GAAA,CACA,iCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,8kBChBAA,GAAA,CACA,+BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,8jBChBAA,GAAA,CACA,gCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,gkBChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,8lBChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,4uBChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,0pBChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,0mBChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,gsBChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,0qBChBAA,GAAA,CACA,gCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,mmBChBAA,GAAA,CACA,gCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,mmBChBAA,GAAA,CACA,wBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,8jBChBAA,GAAA,CACA,8BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,w0BChBAA,GAAA,CACA,8BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,k0BChBAA,GAAA,CACA,8BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,qtBChBAA,GAAA,CACA,4BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,kkBChBAA,GAAA,CACA,+BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,okBChBAA,GAAA,CACA,2BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,6nBChBAA,GAAA,CACA,sBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,s0BChBAA,GAAA,CACA,wBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,2pBChBAA,GAAA,CACA,uBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,6mBChBAA,GAAA,CACA,gBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,2uBChBAA,GAAA,CACA,mBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,61BChBAA,GAAA,CACA,mBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,2iBChBAA,GAAA,CACA,qBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,6xBChBAA,GAAA,CACA,gCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,2oBChBAA,GAAA,CACA,0BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,mqBChBAA,GAAA,CACA,iBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,qoBChBAA,GAAA,CACA,iBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,0oBChBAA,GAAA,CACA,gCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,spBChBAA,GAAA,CACA,iCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,upBChBAA,GAAA,CACA,6BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,mrBChBAA,GAAA,CACA,8BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,yrBChBAA,GAAA,CACA,oBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,umDChBAA,GAAA,CACA,yBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,4qBChBAA,GAAA,CACA,gCACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,ioBChBAA,GAAA,CACA,kBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,8iBChBAA,GAAA,CACA,iBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,+iBChBAA,GAAA,CACA,eACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,i5CChBAA,GAAA,CACA,4BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,q+BC6BMqC,GAAoB,GAEpBC,GAAYC,IAAc,CAC/B,WAAY,GACZ,OAAOC,EAAG,CAAE,KAAAv0C,EAAM,MAAA/7B,CAAK,EAAI,CAC1B,OAAOswE,EAAED,EAAU,CAClB,KAAAt0C,EACA,IAAKA,EAAK,IACV,YAAaA,EAAK,YAClB,MAAO,CAAE,KAAMo0C,GAAmB,GAAGnwE,CAAO,CAC/C,CAAG,CACD,CACF,GAEauwE,GAAU,CACtB,WAAY,GACZ,OAAOD,EAAG,CAAE,KAAAv0C,EAAM,MAAA/7B,CAAK,EAAI,CAC1B,OAAOswE,EAAEE,GAAa,CACrB,KAAAz0C,EACA,YAAa,mBACb,MAAO,CAAE,KAAMo0C,GAAmB,GAAGnwE,CAAO,CAC/C,CAAG,CACD,CACF,EAEaywE,IAAsBL,GAASM,EAAuB,EACtDC,GAAwBP,GAASQ,EAAyB,EAC1DC,GAAsBT,GAASU,EAAuB,EACtDC,GAAuBX,GAASY,EAAwB,EACxDC,GAAQb,GAASc,EAAS,EAE1BC,GAAef,GAASgB,EAAgB,EACxCC,GAAWjB,GAASkB,EAAY,EAEhCC,GAASnB,GAASoB,EAAU,EAC5BC,GAASrB,GAASsB,EAAU,EAC5BC,GAAWvB,GAASwB,EAAY,EAChCC,IAAiBzB,GAAS0B,EAAkB,EAC5CC,GAAW3B,GAAS4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A,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,QACJ,EAGQC,EAAiB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,QACJ,EAEQC,EAAa,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,cACJ,EAEQC,EAAiB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,UACJ,EAaQC,EAAe,CACnB,KAAMH,EACN,QAASD,EACT,QAde,CACf,OACA,QACA,UACA,UACA,MACJ,EASI,SANe,CAAE,WAOjB,YAAaE,CACjB,EAEQG,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MAAOF,CAAgB,EACzB,MAAOhM,EAAM,OACX,KACA,eACA,SACA,UACA,aACA,YACAkL,EAAK,SACLlL,EAAM,UAAU,kBAAkB,CAAC,CACzC,EAEQmM,EAAsB,CAC1BD,EACAR,EACAH,EACAJ,EACAD,EAAK,qBACLO,EACAD,CACJ,EAEQY,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,cAAe,wBACf,IAAK,GACN,CACF,EACD,SAAUH,EACV,SAAUE,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACZ,CACP,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMf,EAAmB,eAAiBM,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUK,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAOb,EACP,SAAUa,EACV,UAAW,CACZ,EACD,CACE,MAAOL,EACP,YAAa,GACb,SAAU,CAAED,CAAY,EACxB,UAAW,CACZ,EAGD,CACE,MAAO,KACP,UAAW,CACZ,EAED,CACE,MAAO,IACP,eAAgB,GAChB,SAAU,CACRH,EACAC,CACD,CACF,EAGD,CACE,UAAW,EACX,MAAO,GACR,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUQ,EACV,UAAW,EACX,SAAU,CACRd,EACAD,EAAK,qBACLM,EACAC,EACAF,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUU,EACV,UAAW,EACX,SAAU,CACR,OACAd,EACAD,EAAK,qBACLM,EACAC,EACAF,CACD,CACF,CACF,CACF,EACDA,EACAJ,EACAD,EAAK,qBACLQ,CACD,CACL,EAEE,MAAO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,KACD,EACD,SAAUO,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAY,EACrD,SAAU,CAAE,EAAC,OACXG,EACAC,EACAH,EACAC,EACA,CACET,EACA,CACE,MAAO,4MACP,IAAK,IACL,SAAUO,EACV,SAAU,CACR,OACAV,CACD,CACF,EACD,CACE,MAAOL,EAAK,SAAW,KACvB,SAAUe,CACX,EACD,CACE,MAAO,CAEL,wDACA,MACA,KACD,EACD,UAAW,CACT,EAAG,UACH,EAAG,aACJ,CACF,CACT,CAAO,CACP,CACA,CAUA,SAASK,IAAQpB,EAAM,CACrB,MAAMqB,EAAa,CACjB,KAAM,CACJ,UACA,OACA,OACA,QACD,EACD,SAAU,CACR,qBACA,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,IACD,EACD,OAAQ,CACN,QACA,OACA,gCACA,wBACA,wBACA,uBACA,uBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACD,EACD,QAAS,CACP,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,WACA,WACA,UACA,SACA,QACA,OACA,KACD,CACL,EAEQC,EAAUvB,IAAUC,CAAI,EAExBuB,EAAyCD,EAAQ,SAEvD,OAAAC,EAAI,KAAO,CACT,GAAGA,EAAI,KACP,GAAGF,EAAW,IAClB,EACEE,EAAI,QAAU,CACZ,GAAGA,EAAI,QACP,GAAGF,EAAW,OAClB,EACEE,EAAI,SAAW,CACb,GAAGA,EAAI,SACP,GAAGF,EAAW,QAClB,EACEE,EAAI,OAASF,EAAW,OAExBC,EAAQ,KAAO,UACfA,EAAQ,QAAU,CAAE,OACpBA,EAAQ,WAAa,MAEdA,CACT,CC77BA,SAASE,IAAKxB,EAAM,CAClB,MAAMlL,EAAQkL,EAAK,MACbyB,EAAM,GACNC,EAAa,CACjB,MAAO,OACP,IAAK,KACL,SAAU,CACR,OACA,CACE,MAAO,KACP,SAAU,CAAED,CAAK,CAClB,CACF,CACL,EACE,OAAO,OAAOA,EAAK,CACjB,UAAW,WACX,SAAU,CACR,CAAE,MAAO3M,EAAM,OAAO,qBAGpB,qBAAqB,CAAG,EAC1B4M,CACD,CACL,CAAG,EAED,MAAMC,EAAQ,CACZ,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CAAE3B,EAAK,gBAAkB,CACvC,EACQ4B,EAAW,CACf,MAAO,iBACP,OAAQ,CAAE,SAAU,CAClB5B,EAAK,kBAAkB,CACrB,MAAO,QACP,IAAK,QACL,UAAW,QACnB,CAAO,CACP,CAAO,CACP,EACQ6B,EAAe,CACnB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR7B,EAAK,iBACLyB,EACAE,CACD,CACL,EACEA,EAAM,SAAS,KAAKE,CAAY,EAChC,MAAMC,EAAgB,CACpB,UAAW,GACX,MAAO,KAEX,EACQC,EAAc,CAClB,UAAW,SACX,MAAO,IACP,IAAK,GACT,EACQC,EAAa,CACjB,MAAO,UACP,IAAK,OACL,SAAU,CACR,CACE,MAAO,gBACP,UAAW,QACZ,EACDhC,EAAK,YACLyB,CACD,CACL,EACQQ,EAAiB,CACrB,OACA,OACA,MACA,KACA,MACA,MACA,OACA,OACA,MACJ,EACQC,EAAgBlC,EAAK,QAAQ,CACjC,OAAQ,IAAIiC,SAAe,KAAK,GAAG,EAAC,KACpC,UAAW,EACf,CAAG,EACKE,EAAW,CACf,UAAW,WACX,MAAO,4BACP,YAAa,GACb,SAAU,CAAEnC,EAAK,QAAQA,EAAK,WAAY,CAAE,MAAO,YAAY,CAAE,CAAG,EACpE,UAAW,CACf,EAEQoC,EAAW,CACf,KACA,OACA,OACA,OACA,KACA,MACA,QACA,QACA,KACA,KACA,OACA,OACA,OACA,WACA,QACJ,EAEQC,EAAW,CACf,OACA,OACJ,EAGQC,EAAY,CAAE,MAAO,kBAGrBC,EAAkB,CACtB,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,OACJ,EAEQC,EAAiB,CACrB,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,UACA,SACA,SACJ,EAEQC,EAAgB,CACpB,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,MACJ,EAEQC,EAAiB,CACrB,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,KACJ,EAEE,MAAO,CACL,KAAM,OACN,QAAS,CAAE,IAAM,EACjB,SAAU,CACR,SAAU,wBACV,QAASN,EACT,QAASC,EACT,SAAU,CACR,GAAGE,EACH,GAAGC,EAEH,MACA,QACA,GAAGC,EACH,GAAGC,CACJ,CACF,EACD,SAAU,CACRR,EACAlC,EAAK,QAAS,EACdmC,EACAH,EACAhC,EAAK,kBACL4B,EACAU,EACAT,EACAC,EACAC,EACAN,CACD,CACL,CACA,CC3XA,SAAStkD,IAAE6iD,EAAM,CACf,MAAMlL,EAAQkL,EAAK,MAIbC,EAAsBD,EAAK,QAAQ,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAQ,EAAI,GACjFE,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,IACrBF,EAAmB,IACnBpL,EAAM,SAASqL,CAAY,EAC3B,gBAAkBrL,EAAM,SAJC,UAI4B,EACvD,IAGI6N,EAAQ,CACZ,UAAW,OACX,SAAU,CACR,CAAE,MAAO,oBAAsB,EAC/B,CAAE,MAAO,uBAAyB,CACnC,CAEL,EAKQrC,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEN,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACV,EACDA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACF,CACL,EAEQO,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAkB,EAC3B,CAAE,MAAO,uFAA4F,EACrG,CAAE,MAAO,qFAA4F,CACtG,EACD,UAAW,CACf,EAEQC,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACyC,EAC7C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACDR,EAAK,QAAQM,EAAS,CAAE,UAAW,QAAQ,CAAE,EAC7C,CACE,UAAW,SACX,MAAO,OACR,EACDL,EACAD,EAAK,oBACN,CACL,EAEQS,EAAa,CACjB,UAAW,QACX,MAAO3L,EAAM,SAASqL,CAAY,EAAIH,EAAK,SAC3C,UAAW,CACf,EAEQU,EAAiB5L,EAAM,SAASqL,CAAY,EAAIH,EAAK,SAAW,UAsEhEoC,EAAW,CACf,QArEiB,CACjB,MACA,OACA,QACA,OACA,WACA,UACA,KACA,OACA,OACA,SACA,MACA,UACA,OACA,KACA,SACA,WACA,WACA,SACA,SACA,SACA,SACA,UACA,QACA,WACA,QACA,WACA,WACA,UACA,WACA,YACA,iBACA,gBAEA,UACA,UACA,WACA,gBACA,eAEA,SACJ,EA6BI,KA3Bc,CACd,QACA,SACA,SACA,WACA,MACA,QACA,OACA,OACA,OACA,QACA,WACA,aACA,aACA,aACA,cAEA,QACA,SAEA,UACA,OACA,WACJ,EAKI,QAAS,kBAET,SAAU,kzBASd,EAEQnB,EAAsB,CAC1BT,EACAmC,EACA1C,EACAD,EAAK,qBACLO,EACAD,CACJ,EAEQY,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,cAAe,wBACf,IAAK,GACN,CACF,EACD,SAAUkB,EACV,SAAUnB,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUmB,EACV,SAAUnB,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACZ,CACP,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,MAAO,IAAMf,EAAmB,eAAiBM,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAU0B,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAOlC,EACP,SAAUkC,EACV,UAAW,CACZ,EACD,CACE,MAAO1B,EACP,YAAa,GACb,SAAU,CAAEV,EAAK,QAAQS,EAAY,CAAE,UAAW,gBAAgB,CAAE,CAAG,EACvE,UAAW,CACZ,EAGD,CACE,UAAW,EACX,MAAO,GACR,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU2B,EACV,UAAW,EACX,SAAU,CACRnC,EACAD,EAAK,qBACLM,EACAC,EACAoC,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUP,EACV,UAAW,EACX,SAAU,CACR,OACAnC,EACAD,EAAK,qBACLM,EACAC,EACAoC,CACD,CACF,CACF,CACF,EACDA,EACA1C,EACAD,EAAK,qBACLQ,CACD,CACL,EAEE,MAAO,CACL,KAAM,IACN,QAAS,CAAE,GAAK,EAChB,SAAU4B,EAGV,kBAAmB,GACnB,QAAS,KACT,SAAU,CAAE,EAAC,OACXlB,EACAC,EACAF,EACA,CACET,EACA,CACE,MAAOR,EAAK,SAAW,KACvB,SAAUoC,CACX,EACD,CACE,UAAW,QACX,cAAe,0BACf,IAAK,WACL,SAAU,CACR,CAAE,cAAe,oBAAsB,EACvCpC,EAAK,UACN,CACF,CACT,CAAO,EACH,QAAS,CACP,aAAcQ,EACd,QAASF,EACT,SAAU8B,CACX,CACL,CACA,CCpTA,SAASQ,IAAI5C,EAAM,CACjB,MAAMlL,EAAQkL,EAAK,MAIbC,EAAsBD,EAAK,QAAQ,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAQ,EAAI,GACjFE,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,cACrBF,EAAmB,IACnBpL,EAAM,SAASqL,CAAY,EAC3B,gBAAkBrL,EAAM,SAJC,UAI4B,EACvD,IAEIuL,EAAsB,CAC1B,UAAW,OACX,MAAO,oBACX,EAKQC,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEN,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACV,EACDA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACF,CACL,EAEQO,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAkB,EAC3B,CAAE,MAAO,uFAA4F,EACrG,CAAE,MAAO,qFAA4F,CACtG,EACD,UAAW,CACf,EAEQC,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACyC,EAC7C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACDR,EAAK,QAAQM,EAAS,CAAE,UAAW,QAAQ,CAAE,EAC7C,CACE,UAAW,SACX,MAAO,OACR,EACDL,EACAD,EAAK,oBACN,CACL,EAEQS,EAAa,CACjB,UAAW,QACX,MAAO3L,EAAM,SAASqL,CAAY,EAAIH,EAAK,SAC3C,UAAW,CACf,EAEQU,EAAiB5L,EAAM,SAASqL,CAAY,EAAIH,EAAK,SAAW,UAGhEW,EAAoB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,QACJ,EAGQC,EAAiB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,QACJ,EAEQC,EAAa,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,cACJ,EAEQC,EAAiB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,UACJ,EAaQC,EAAe,CACnB,KAAMH,EACN,QAASD,EACT,QAde,CACf,OACA,QACA,UACA,UACA,MACJ,EASI,SANe,CAAE,WAOjB,YAAaE,CACjB,EAEQG,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MAAOF,CAAgB,EACzB,MAAOhM,EAAM,OACX,KACA,eACA,SACA,UACA,aACA,YACAkL,EAAK,SACLlL,EAAM,UAAU,kBAAkB,CAAC,CACzC,EAEQmM,EAAsB,CAC1BD,EACAR,EACAH,EACAJ,EACAD,EAAK,qBACLO,EACAD,CACJ,EAEQY,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,cAAe,wBACf,IAAK,GACN,CACF,EACD,SAAUH,EACV,SAAUE,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACZ,CACP,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMf,EAAmB,eAAiBM,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUK,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAOb,EACP,SAAUa,EACV,UAAW,CACZ,EACD,CACE,MAAOL,EACP,YAAa,GACb,SAAU,CAAED,CAAY,EACxB,UAAW,CACZ,EAGD,CACE,MAAO,KACP,UAAW,CACZ,EAED,CACE,MAAO,IACP,eAAgB,GAChB,SAAU,CACRH,EACAC,CACD,CACF,EAGD,CACE,UAAW,EACX,MAAO,GACR,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUQ,EACV,UAAW,EACX,SAAU,CACRd,EACAD,EAAK,qBACLM,EACAC,EACAF,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUU,EACV,UAAW,EACX,SAAU,CACR,OACAd,EACAD,EAAK,qBACLM,EACAC,EACAF,CACD,CACF,CACF,CACF,EACDA,EACAJ,EACAD,EAAK,qBACLQ,CACD,CACL,EAEE,MAAO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,KACD,EACD,SAAUO,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAY,EACrD,SAAU,CAAE,EAAC,OACXG,EACAC,EACAH,EACAC,EACA,CACET,EACA,CACE,MAAO,4MACP,IAAK,IACL,SAAUO,EACV,SAAU,CACR,OACAV,CACD,CACF,EACD,CACE,MAAOL,EAAK,SAAW,KACvB,SAAUe,CACX,EACD,CACE,MAAO,CAEL,wDACA,MACA,KACD,EACD,UAAW,CACT,EAAG,UACH,EAAG,aACJ,CACF,CACT,CAAO,CACP,CACA,CC5iBA,SAAS8B,IAAO7C,EAAM,CACpB,MAAM8C,EAAoB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACJ,EACQC,EAAqB,CACzB,SACA,UACA,YACA,SACA,WACA,YACA,WACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,SACJ,EACQC,EAAmB,CACvB,UACA,QACA,OACA,MACJ,EACQC,EAAkB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,OACJ,EACQC,EAAsB,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,OACJ,EAEQd,EAAW,CACf,QAASa,EAAgB,OAAOC,CAAmB,EACnD,SAAUJ,EACV,QAASE,CACb,EACQvC,EAAaT,EAAK,QAAQA,EAAK,WAAY,CAAE,MAAO,oBAAoB,CAAE,EAC1EO,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAkB,EAC3B,CAAE,MAAO,iEAAsE,EAC/E,CAAE,MAAO,qFAA4F,CACtG,EACD,UAAW,CACf,EACQ4C,EAAkB,CACtB,UAAW,SACX,MAAO,KACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,KAAQ,CACjC,EACQC,EAAwBpD,EAAK,QAAQmD,EAAiB,CAAE,QAAS,IAAI,CAAE,EACvExB,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAUS,CACd,EACQiB,EAAcrD,EAAK,QAAQ2B,EAAO,CAAE,QAAS,IAAI,CAAE,EACnD2B,EAAsB,CAC1B,UAAW,SACX,MAAO,MACP,IAAK,IACL,QAAS,KACT,SAAU,CACR,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAO,MAAQ,EACjBtD,EAAK,iBACLqD,CACD,CACL,EACQE,EAA+B,CACnC,UAAW,SACX,MAAO,OACP,IAAK,IACL,SAAU,CACR,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAO,IAAM,EACf5B,CACD,CACL,EACQ6B,EAAqCxD,EAAK,QAAQuD,EAA8B,CACpF,QAAS,KACT,SAAU,CACR,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAO,IAAM,EACfF,CACD,CACL,CAAG,EACD1B,EAAM,SAAW,CACf4B,EACAD,EACAH,EACAnD,EAAK,iBACLA,EAAK,kBACLO,EACAP,EAAK,oBACT,EACEqD,EAAY,SAAW,CACrBG,EACAF,EACAF,EACApD,EAAK,iBACLA,EAAK,kBACLO,EACAP,EAAK,QAAQA,EAAK,qBAAsB,CAAE,QAAS,KAAM,CAC7D,EACE,MAAMyD,EAAS,CAAE,SAAU,CACzBF,EACAD,EACAH,EACAnD,EAAK,iBACLA,EAAK,iBACT,GAEQ0D,EAAmB,CACvB,MAAO,IACP,IAAK,IACL,SAAU,CACR,CAAE,cAAe,QAAU,EAC3BjD,CACD,CACL,EACQkD,EAAgB3D,EAAK,SAAW,KAAOA,EAAK,SAAW,aAAeA,EAAK,SAAW,iBACtF4D,EAAgB,CAGpB,MAAO,IAAM5D,EAAK,SAClB,UAAW,CACf,EAEE,MAAO,CACL,KAAM,KACN,QAAS,CACP,KACA,IACD,EACD,SAAUoC,EACV,QAAS,KACT,SAAU,CACRpC,EAAK,QACH,MACA,IACA,CACE,YAAa,GACb,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,UAAW,CACZ,EACD,CAAE,MAAO,UAAY,EACrB,CACE,MAAO,MACP,IAAK,GACN,CACF,CACF,CACF,CACF,CACF,EACDA,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,QAAS,qFAAuF,CAC7G,EACDyD,EACAlD,EACA,CACE,cAAe,kBACf,UAAW,EACX,IAAK,QACL,QAAS,UACT,SAAU,CACR,CAAE,cAAe,aAAe,EAChCE,EACAiD,EACA1D,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CACE,cAAe,YACf,UAAW,EACX,IAAK,QACL,QAAS,SACT,SAAU,CACRS,EACAT,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CACE,cAAe,SACf,UAAW,EACX,IAAK,QACL,QAAS,SACT,SAAU,CACRS,EACAiD,EACA1D,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CAEE,UAAW,OACX,MAAO,oBACP,aAAc,GACd,IAAK,MACL,WAAY,GACZ,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACN,CACF,CACF,EACD,CAGE,cAAe,8BACf,UAAW,CACZ,EACD,CACE,UAAW,WACX,MAAO,IAAM2D,EAAgB,SAAW3D,EAAK,SAAW,wBACxD,YAAa,GACb,IAAK,WACL,WAAY,GACZ,SAAUoC,EACV,SAAU,CAER,CACE,cAAeW,EAAmB,KAAK,GAAG,EAC1C,UAAW,CACZ,EACD,CACE,MAAO/C,EAAK,SAAW,wBACvB,YAAa,GACb,SAAU,CACRA,EAAK,WACL0D,CACD,EACD,UAAW,CACZ,EACD,CAAE,MAAO,MAAQ,EACjB,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,SAAUtB,EACV,UAAW,EACX,SAAU,CACRqB,EACAlD,EACAP,EAAK,oBACN,CACF,EACDA,EAAK,oBACLA,EAAK,oBACN,CACF,EACD4D,CACD,CACL,CACA,CC7YA,MAAMC,IAAS7D,IACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACR,EACD,cAAeA,EAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACR,EACD,kBAAmB,CACjB,UAAW,WACX,MAAO,cACR,EACD,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,EACD,gBAAiB,CACf,MAAO,SACP,MAAOA,EAAK,UAAY,kGASxB,UAAW,CACZ,EACD,aAAc,CACZ,UAAW,OACX,MAAO,0BACR,CACL,GAGM8D,IAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,IAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAGMC,IAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAGMC,IAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAEMC,IAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,SAGF,EAAE,QAAO,EAST,SAASt9E,IAAIo5E,EAAM,CACjB,MAAMlL,EAAQkL,EAAK,MACbmE,EAAQN,IAAM7D,CAAI,EAClBoE,EAAgB,CAAE,MAAO,gCACzBC,EAAe,kBACfC,EAAiB,oBACjBC,EAAW,0BACXjE,EAAU,CACdN,EAAK,iBACLA,EAAK,iBACT,EAEE,MAAO,CACL,KAAM,MACN,iBAAkB,GAClB,QAAS,UACT,SAAU,CAAE,iBAAkB,SAAW,EACzC,iBAAkB,CAGhB,iBAAkB,cAAgB,EACpC,SAAU,CACRmE,EAAM,cACNC,EAGAD,EAAM,gBACN,CACE,UAAW,cACX,MAAO,kBACP,UAAW,CACZ,EACD,CACE,UAAW,iBACX,MAAO,MAAQI,EACf,UAAW,CACZ,EACDJ,EAAM,wBACN,CACE,UAAW,kBACX,SAAU,CACR,CAAE,MAAO,KAAOH,IAAe,KAAK,GAAG,EAAI,GAAK,EAChD,CAAE,MAAO,SAAWC,IAAgB,KAAK,GAAG,EAAI,GAAK,CACtD,CACF,EAODE,EAAM,aACN,CACE,UAAW,YACX,MAAO,OAASD,IAAW,KAAK,GAAG,EAAI,MACxC,EAED,CACE,MAAO,IACP,IAAK,QACL,SAAU,CACRC,EAAM,cACNA,EAAM,SACNA,EAAM,UACNA,EAAM,gBACN,GAAG7D,EAIH,CACE,MAAO,mBACP,IAAK,KACL,UAAW,EACX,SAAU,CAAE,SAAU,cAAgB,EACtC,SAAU,CACR,GAAGA,EACH,CACE,UAAW,SAGX,MAAO,OACP,eAAgB,GAChB,WAAY,EACb,CACF,CACF,EACD6D,EAAM,iBACP,CACF,EACD,CACE,MAAOrP,EAAM,UAAU,GAAG,EAC1B,IAAK,OACL,UAAW,EACX,QAAS,IACT,SAAU,CACR,CACE,UAAW,UACX,MAAOwP,CACR,EACD,CACE,MAAO,KACP,eAAgB,GAChB,WAAY,GACZ,UAAW,EACX,SAAU,CACR,SAAU,UACV,QAASD,EACT,UAAWN,IAAe,KAAK,GAAG,CACnC,EACD,SAAU,CACR,CACE,MAAO,eACP,UAAW,WACZ,EACD,GAAGzD,EACH6D,EAAM,eACP,CACF,CACF,CACF,EACD,CACE,UAAW,eACX,MAAO,OAASL,IAAK,KAAK,GAAG,EAAI,MAClC,CACF,CACL,CACA,CCrtBA,SAASrwH,IAAKusH,EAAM,CAClB,MAAMlL,EAAQkL,EAAK,MACnB,MAAO,CACL,KAAM,OACN,QAAS,CAAE,OAAS,EACpB,SAAU,CACR,CACE,UAAW,OACX,UAAW,GACX,MAAOlL,EAAM,OACX,+BACA,8BACA,sBACD,CACF,EACD,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAOA,EAAM,OACX,UACA,SACA,QACA,QACA,UACA,SACA,aACD,EACD,IAAK,GACN,EACD,CAAE,MAAO,UAAY,CACtB,CACF,EACD,CACE,UAAW,WACX,MAAO,MACP,IAAK,GACN,EACD,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACN,EACD,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACN,CACF,CACL,CACA,CClDA,SAAS0P,IAAGxE,EAAM,CAyEhB,MAAMoC,EAAW,CACf,QA5BU,CACV,QACA,OACA,OACA,QACA,WACA,UACA,QACA,OACA,cACA,MACA,OACA,KACA,OACA,KACA,SACA,YACA,MACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,KACJ,EAGI,KAnDY,CACZ,OACA,OACA,YACA,aACA,QACA,UACA,UACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,UACA,MACJ,EA+BI,QA3Ee,CACf,OACA,QACA,OACA,KACJ,EAuEI,SAtEgB,CAChB,SACA,MACA,QACA,UACA,OACA,OACA,MACA,OACA,MACA,QACA,QACA,UACA,OACA,UACA,QACJ,CAuDA,EACE,MAAO,CACL,KAAM,KACN,QAAS,CAAE,QAAU,EACrB,SAAUA,EACV,QAAS,KACT,SAAU,CACRpC,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,SACX,SAAU,CACRA,EAAK,kBACLA,EAAK,iBACL,CACE,MAAO,IACP,IAAK,GACN,CACF,CACF,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAOA,EAAK,YAAc,MAC1B,UAAW,CACZ,EACDA,EAAK,aACN,CACF,EACD,CAAE,MAAO,IACR,EACD,CACE,UAAW,WACX,cAAe,OACf,IAAK,cACL,WAAY,GACZ,SAAU,CACRA,EAAK,WACL,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,WAAY,GACZ,SAAUoC,EACV,QAAS,MACV,CACF,CACF,CACF,CACL,CACA,CClIA,SAASqC,IAAQzE,EAAM,CACrB,MAAMlL,EAAQkL,EAAK,MACb0E,EAAW,yBACjB,MAAO,CACL,KAAM,UACN,QAAS,CAAE,KAAO,EAClB,iBAAkB,GAClB,kBAAmB,GACnB,SAAU,CACR,QAAS,CACP,QACA,WACA,eACA,OACA,QACA,SACA,YACA,YACA,QACA,SACA,WACA,OACA,IACD,EACD,QAAS,CACP,OACA,QACA,MACD,CACF,EACD,SAAU,CACR1E,EAAK,kBACLA,EAAK,kBACLA,EAAK,YACL,CACE,MAAO,cACP,MAAO,SACP,UAAW,CACZ,EACD,CACE,MAAO,cACP,MAAO,4BACP,UAAW,CACZ,EACD,CACE,MAAO,WACP,MAAO,KACP,IAAK,KACL,WAAY,GACZ,UAAW,CACZ,EACD,CACE,MAAO,OACP,MAAO,OACP,WAAY,EACb,EACD,CACE,MAAO,SACP,MAAOlL,EAAM,OAAO4P,EAAU5P,EAAM,UAAU,MAAM,CAAC,EACrD,UAAW,CACZ,CACF,EACD,QAAS,CACP,QACA,OACD,CACL,CACA,CCnEA,SAAS6P,IAAI3E,EAAM,CACjB,MAAMlL,EAAQkL,EAAK,MACbO,EAAU,CACd,UAAW,SACX,UAAW,EACX,SAAU,CACR,CAAE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OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,YACR,CACF,CACF,CACF,EAED,CACE,MAAO,wBACP,SAAU,SACV,UAAW,CACZ,EACDA,EAAK,oBACLA,EAAK,qBACL,CACE,MAAO,MACP,IAAK,MACL,UAAW,SACX,SAAU,CAAEA,EAAK,gBAAkB,CACpC,EACDA,EAAK,iBACLA,EAAK,kBACL,CACE,MAAO,CACL,oDACA,MACA2F,CACD,EACD,UAAW,CACT,EAAG,UACH,EAAG,aACJ,CACF,EACD,CAEE,MAAO,aACP,MAAO,SACR,EACD,CACE,MAAO,CACL7Q,EAAM,OAAO,WAAY6Q,CAAa,EACtC,MACAA,EACA,MACA,QACD,EACD,UAAW,CACT,EAAG,OACH,EAAG,WACH,EAAG,UACJ,CACF,EACD,CACE,MAAO,CACL,SACA,MACAA,CACD,EACD,UAAW,CACT,EAAG,UACH,EAAG,aACJ,EACD,SAAU,CACRG,EACA9F,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CAGE,cAAe,wBACf,UAAW,CACZ,EACD,CACE,MAAO,CACL,MAAQ4F,EAAmB,QAC3B5F,EAAK,oBACL,WACD,EACD,UAAW,CAAE,EAAG,gBAAkB,EAClC,SAAUoC,EACV,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUA,EACV,UAAW,EACX,SAAU,CACRyD,EACA7F,EAAK,iBACLA,EAAK,kBACLuF,GACAvF,EAAK,oBACN,CACF,EACDA,EAAK,oBACLA,EAAK,oBACN,CACF,EACDuF,GACAM,CACD,CACL,CACA,CC7RA,MAAMtB,GAAW,2BACXnC,IAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,SACF,EACMC,IAAW,CACf,OACA,QACA,OACA,YACA,M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,IACP,IAAK,SACL,eAAgB,GAChB,SAAU,CACRuG,EACA3I,EAAK,oBACL0I,CACD,EACD,UAAW,CACZ,EACD1I,EAAK,oBACL0I,EACAF,EACA3C,EACApC,EACAzD,EAAK,aACN,CACF,EACD0I,CACD,CACF,EACD,CACE,MAAO,CACL,wBACA,MACA1I,EAAK,mBACN,EACD,WAAY,CACV,EAAG,aACJ,EACD,SAAU,wBACV,IAAK,WACL,WAAY,GACZ,QAAS,qBACT,SAAU,CACR,CAAE,cAAe,+CAAiD,EAClEA,EAAK,sBACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,aAAc,GACd,WAAY,GACZ,UAAW,CACZ,EACD,CACE,UAAW,OACX,MAAO,UACP,IAAK,eACL,aAAc,GACd,UAAW,EACZ,EACDwI,EACA3C,CACD,CACF,EACDpC,EACA,CACE,UAAW,OACX,MAAO,kBACP,IAAK,IACL,QAAS,IACV,EACDgF,CACD,CACL,CACA,CC1RA,MAAM5E,IAAS7D,IACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACR,EACD,cAAeA,EAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACR,EACD,kBAAmB,CACjB,UAAW,WACX,MAAO,cACR,EACD,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,EACD,gBAAiB,CACf,MAAO,SACP,MAAOA,EAAK,UAAY,kGASxB,UAAW,CACZ,EACD,aAAc,CACZ,UAAW,OACX,MAAO,0BACR,CACL,GAGM8D,IAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,IAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAGMC,GAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAGMC,GAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAEMC,IAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA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P,IAAK,MACL,SAAUA,CACX,CACF,CACF,CACF,CACL,EAkBMV,EACAG,EACAzpD,EACA6pD,EAnBe,CACjB,UAAW,QACX,MAAO,SACP,SAAUG,EACV,IAAK,GACT,EAgBMR,EACAD,EACAK,EACAF,CACD,CACL,CACA,CCtOA,SAASO,IAAWpL,EAAM,CACxB,MAAMqL,EAAY,CAChB,UAAW,WACX,MAAO,sEACX,EACQC,EAAgB,yBAuJhBlJ,EAAW,CACf,oBAAqB,CACnB,OACA,OACD,EACD,SAAUkJ,EACV,QA3IU,CACV,QACA,SACA,SACA,UACA,QACA,SACA,MACA,QACA,WACA,SACA,UACA,KACA,KACA,SACA,OACA,OACA,OACA,QACA,SACA,MACA,OACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,WACA,SACA,YACA,OACA,gBACA,KACA,SACA,YACA,WACA,WACA,SACA,OACA,OACA,KACA,MACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,kBACA,WACA,aACA,UACA,OACA,YACA,OACA,SACA,SACA,WACA,mBACA,cACA,WACA,YACA,YACA,YACA,UACA,WACA,UACA,QACA,uBACA,WACA,oBACA,oBACA,kBACA,cACA,kBACA,WACA,WACA,YACA,oBACA,eACA,sBACA,gBACA,SACA,SACA,SACA,oBACA,UACA,WACA,mBACA,kBACA,QACA,eACA,4BACA,iBACA,oBACA,2BACA,YACA,eACA,gBACA,UACA,aACA,uBACA,0BACA,wBACA,uBACA,gBACA,mBACA,YACA,aACA,gBACA,iBACA,eACJ,EAyBI,QAxBe,CACf,QACA,OACA,QACA,OACA,MACA,MACA,KACA,MACJ,EAgBI,SAfgB,CAChB,kBACA,mBACA,gBACA,iBACA,eACJ,EAUI,KA/JY,CACZ,MACA,QACA,OACA,WACA,SACA,QACA,OACA,SACA,UACA,UACA,OACA,OACA,OACA,OACA,OACJ,CAgJA,EACQC,EAAiB,CACrB,SAAUD,EACV,QAAS,CACP,aACA,SACA,YACA,iBACD,CACL,EACE,MAAO,CACL,KAAM,cACN,QAAS,CACP,KACA,OACA,QACA,UACA,eACD,EACD,SAAUlJ,EACV,QAAS,KACT,SAAU,CACRiJ,EACArL,EAAK,oBACLA,EAAK,qBACLA,EAAK,cACLA,EAAK,kBACLA,EAAK,iBACL,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEA,EAAK,gBAAkB,CACpC,CACF,CACF,EACD,CACE,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,gFACiC,EACrC,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CAAE,UAAW,SAAU,EAC5D,CACE,UAAW,SACX,MAAO,QACP,IAAK,IACL,QAAS,KACV,EACDA,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CACE,UAAW,QACX,MAAO,IAAMuL,EAAe,QAAQ,KAAK,GAAG,EAAI,OAChD,IAAK,SACL,WAAY,GACZ,SAAUA,EACV,SAAU,CAAEvL,EAAK,qBAAuB,CACzC,EACD,CACE,MAAO,MAAQA,EAAK,oBACpB,UAAW,CACZ,CACF,CACL,CACA,CClPA,SAASwL,IAAKxL,EAAM,CAClB,MAAMlL,EAAQkL,EAAK,MACboC,EAAW,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,KACJ,EAGQqJ,EAAkB,uBAClBC,EAAgB,CACpB,SAAU,SACV,QAAStJ,EAAS,KAAK,GAAG,CAC9B,EACQT,EAAQ,CACZ,UAAW,QACX,MAAO,UACP,IAAK,MACL,SAAU+J,CACd,EACQC,EAAS,CACb,MAAO,OACP,IAAK,IAET,EACQlK,EAAM,CAAE,SAAU,CACtB,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAO3M,EAAM,OACb,iDAGA,uBACN,CAAO,EACH,CACE,MAAO,gBACP,UAAW,CACZ,CACL,GACQ8W,EAAkB,CACtB5L,EAAK,iBACL2B,EACAF,CACJ,EACQoK,EAAe,CACnB,IACA,KACA,KACA,KACA,IACA,IACA,GACJ,EAMQC,EAAmB,CAAC57B,EAAQr0F,EAAMnW,EAAQ,QAAU,CACxD,MAAMqmI,EAAUrmI,IAAU,MACtBA,EACAovH,EAAM,OAAOpvH,EAAOmW,CAAI,EAC5B,OAAOi5G,EAAM,OA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,CAAG,EAEK4K,EAAU,CACd,MAAO,+BACP,IAAK,gBACL,SAAUvM,EAAK,kBAAkB,SAAS,OAAO2B,CAAK,EACtD,WAAY,CAACl5H,EAAG+jI,IAAS,CAAEA,EAAK,KAAK,YAAc/jI,EAAE,CAAC,GAAKA,EAAE,CAAC,CAAI,EAClE,SAAU,CAACA,EAAG+jI,IAAS,CAAMA,EAAK,KAAK,cAAgB/jI,EAAE,CAAC,GAAG+jI,EAAK,YAAa,CAAG,CACtF,EAEQC,EAASzM,EAAK,kBAAkB,CACpC,MAAO,qBACP,IAAK,eACT,CAAG,EAEK0M,EAAa,SACbjJ,EAAS,CACb,MAAO,SACP,SAAU,CACR6I,EACAD,EACAE,EACAE,CACD,CACL,EACQ5F,EAAS,CACb,MAAO,SACP,SAAU,CACR,CAAE,MAAO,6BAA+B,EACxC,CAAE,MAAO,+BAAiC,EAC1C,CAAE,MAAO,2CAA6C,EAEtD,CAAE,MAAO,4EAA8E,CACxF,EACD,UAAW,CACf,EACQxE,EAAW,CACf,QACA,OACA,MACJ,EACQsK,EAAM,CAGV,YACA,UACA,WACA,eACA,2BACA,WACA,aACA,gBACA,YAGA,MACA,OACA,OACA,UACA,eACA,QACA,UACA,eAMA,QACA,WACA,MACA,KACA,SACA,OACA,UACA,QACA,WACA,OACA,QACA,QACA,QACA,QACA,WACA,UACA,UACA,KACA,SACA,OACA,SACA,QACA,aACA,SACA,aACA,QACA,YACA,WACA,OACA,OACA,UACA,QACA,UACA,QACA,MACA,UACA,OACA,SACA,OACA,KACA,aACA,aACA,YACA,MACA,UACA,YACA,QACA,WACA,OACA,UACA,QACA,MACA,QACA,SACA,KACA,UACA,YACA,SACA,WACA,OACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,OACJ,EAEQzG,EAAY,CAGhB,UACA,iBACA,qBACA,kBACA,gBACA,cACA,iBACA,2BACA,yBACA,kBACA,yBACA,eACA,YACA,oBACA,sBACA,kBACA,gBACA,iBACA,YACA,qBACA,iBACA,eACA,mBACA,2BACA,mBACA,kBACA,gBACA,iBACA,mBACA,mBACA,uBACA,sBACA,gBACA,oBACA,iBACA,aACA,iBACA,yBACA,2BACA,kCACA,6BACA,0BACA,oBACA,4BACA,yBACA,wBACA,gBACA,mBACA,mBACA,sBACA,cACA,gBACA,gBACA,UACA,aACA,aACA,mBACA,cACA,mBACA,WACA,WACA,aACA,oBACA,YACA,qBACA,2BACA,sBAGA,cACA,aACA,UACA,QACA,YACA,WACA,oBACA,eACA,aACA,YACA,cACA,WACA,gBACA,UAGA,YACA,yBACA,SACA,kBACA,OACA,SACA,UACJ,EAsBQ9D,EAAW,CACf,QAASuK,EACT,SAhBgBhiG,GAAU,CAE1B,MAAM3pC,EAAS,GACf,OAAA2pC,EAAM,QAAQzC,GAAQ,CACpBlnC,EAAO,KAAKknC,CAAI,EACZA,EAAK,YAAa,IAAKA,EACzBlnC,EAAO,KAAKknC,EAAK,YAAa,GAE9BlnC,EAAO,KAAKknC,EAAK,YAAa,EAEtC,CAAK,EACMlnC,CACX,GAIsBqhI,CAAQ,EAC1B,SAAU6D,CACd,EAIQ0G,EAAqBjiG,GAClBA,EAAM,IAAIzC,GACRA,EAAK,QAAQ,SAAU,EAAE,CACjC,EAGG2kG,EAAmB,CAAE,SAAU,CACnC,CACE,MAAO,CACL,MACA/X,EAAM,OAAO4X,EAAY,GAAG,EAE5B5X,EAAM,OAAO,MAAO8X,EAAkB1G,CAAS,EAAE,KAAK,MAAM,EAAG,MAAM,EACrEkG,CACD,EACD,MAAO,CACL,EAAG,UACH,EAAG,aACJ,CACF,CACL,GAEQU,EAAqBhY,EAAM,OAAOyP,EAAU,YAAY,EAExDwI,EAAsC,CAAE,SAAU,CACtD,CACE,MAAO,CACLjY,EAAM,OACJ,KACAA,EAAM,UAAU,aAAa,CAC9B,EACDgY,CACD,EACD,MAAO,CAAE,EAAG,mBAAsB,CACnC,EACD,CACE,MAAO,CACL,KACA,OACD,EACD,MAAO,CAAE,EAAG,mBAAsB,CACnC,EACD,CACE,MAAO,CACLV,EACAtX,EAAM,OACJ,KACAA,EAAM,UAAU,aAAa,CAC9B,EACDgY,CACD,EACD,MAAO,CACL,EAAG,cACH,EAAG,mBACJ,CACF,EACD,CACE,MAAO,CACLV,EACAtX,EAAM,OACJ,KACAA,EAAM,UAAU,aAAa,CAC9B,CACF,EACD,MAAO,CAAE,EAAG,aAAgB,CAC7B,EACD,CACE,MAAO,CACLsX,EACA,KACA,OACD,EACD,MAAO,CACL,EAAG,cACH,EAAG,mBACJ,CACF,CACL,GAEQY,EAAiB,CACrB,MAAO,OACP,MAAOlY,EAAM,OAAOyP,EAAUzP,EAAM,UAAU,GAAG,EAAGA,EAAM,UAAU,QAAQ,CAAC,CACjF,EACQmY,EAAc,CAClB,UAAW,EACX,MAAO,KACP,IAAK,KACL,SAAU7K,EACV,SAAU,CACR4K,EACAzE,EACAwE,EACA/M,EAAK,qBACLyD,EACAoD,EACAgG,CACD,CACL,EACQK,EAAkB,CACtB,UAAW,EACX,MAAO,CACL,KAEApY,EAAM,OAAO,wBAAyB8X,EAAkBD,CAAG,EAAE,KAAK,MAAM,EAAG,IAAKC,EAAkB1G,CAAS,EAAE,KAAK,MAAM,EAAG,MAAM,EACjI3B,EACAzP,EAAM,OAAO4X,EAAY,GAAG,EAC5B5X,EAAM,UAAU,QAAQ,CACzB,EACD,MAAO,CAAE,EAAG,uBAA0B,EACtC,SAAU,CAAEmY,CAAa,CAC7B,EACEA,EAAY,SAAS,KAAKC,CAAe,EAEzC,MAAMC,EAAqB,CACzBH,EACAD,EACA/M,EAAK,qBACLyD,EACAoD,EACAgG,CACJ,EAEQ3I,EAAa,CACjB,MAAOpP,EAAM,OAAO,SAAUsX,CAAyB,EACvD,WAAY,OACZ,IAAK,IACL,SAAU,OACV,SAAU,CACR,QAAS/J,EACT,QAAS,CACP,MACA,OACD,CACF,EACD,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACL,SAAU,CACR,QAASA,EACT,QAAS,CACP,MACA,OACD,CACF,EACD,SAAU,CACR,OACA,GAAG8K,CACJ,CACF,EACD,GAAGA,EACH,CACE,MAAO,OACP,MAAOf,CACR,CACF,CACL,EAEE,MAAO,CACL,iBAAkB,GAClB,SAAUhK,EACV,SAAU,CACR8B,EACAlE,EAAK,kBACLA,EAAK,QAAQ,KAAM,GAAG,EACtBA,EAAK,QACH,OACA,OACA,CAAE,SAAU,CACV,CACE,MAAO,SACP,MAAO,YACR,CACX,CAAW,CACJ,EACD,CACE,MAAO,uBACP,SAAU,kBACV,OAAQ,CACN,MAAO,UACP,IAAKA,EAAK,iBACV,SAAU,CACR,CACE,MAAO,MACP,MAAO,OACP,WAAY,EACb,CACF,CACF,CACF,EACDQ,EACA,CACE,MAAO,oBACP,MAAO,UACR,EACD+H,EACA2E,EACAH,EACA,CACE,MAAO,CACL,QACA,KACAxI,CACD,EACD,MAAO,CACL,EAAG,UACH,EAAG,mBACJ,CACF,EACDsI,EACA,CACE,MAAO,WACP,UAAW,EACX,cAAe,cACf,IAAK,OACL,WAAY,GACZ,QAAS,UACT,SAAU,CACR,CAAE,cAAe,KAAQ,EACzB7M,EAAK,sBACL,CACE,MAAO,KACP,WAAY,EACb,EACD,CACE,MAAO,SACP,MAAO,MACP,IAAK,MACL,aAAc,GACd,WAAY,GACZ,SAAUoC,EACV,SAAU,CACR,OACAmG,EACAwE,EACA/M,EAAK,qBACLyD,EACAoD,CACD,CACF,CACF,CACF,EACD,CACE,MAAO,QACP,SAAU,CACR,CACE,cAAe,OACf,QAAS,OACV,EACD,CACE,cAAe,wBACf,QAAS,QACV,CACF,EACD,UAAW,EACX,IAAK,KACL,WAAY,GACZ,SAAU,CACR,CAAE,cAAe,oBAAsB,EACvC7G,EAAK,qBACN,CACF,EAID,CACE,cAAe,YACf,UAAW,EACX,IAAK,IACL,QAAS,OACT,SAAU,CAAEA,EAAK,QAAQA,EAAK,sBAAuB,CAAE,MAAO,aAAa,CAAE,CAAG,CACjF,EACD,CACE,cAAe,MACf,UAAW,EACX,IAAK,IACL,SAAU,CAER,CACE,MAAO,0BACP,MAAO,SACR,EAEDA,EAAK,qBACN,CACF,EACDyD,EACAoD,CACD,CACL,CACA,CC1lBA,SAASuG,IAAYpN,EAAM,CACzB,MAAO,CACL,KAAM,eACN,YAAa,MACb,SAAU,CACR,CACE,MAAO,cACP,IAAK,MACL,YAAa,MACb,SAAU,CAGR,CACE,MAAO,OACP,IAAK,OACL,KAAM,EACP,EACD,CACE,MAAO,KACP,IAAK,IACL,KAAM,EACP,EACD,CACE,MAAO,KACP,IAAK,IACL,KAAM,EACP,EACDA,EAAK,QAAQA,EAAK,iBAAkB,CAClC,QAAS,KACT,UAAW,KACX,SAAU,KACV,KAAM,EAClB,CAAW,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,QAAS,KACT,UAAW,KACX,SAAU,KACV,KAAM,EAClB,CAAW,CACF,CACF,CACF,CACL,CACA,CC5CA,SAASqN,IAAUrN,EAAM,CACvB,MAAO,CACL,KAAM,aACN,QAAS,CACP,OACA,KACD,EACD,kBAAmB,EACvB,CACA,CCTA,SAASsN,IAAOtN,EAAM,CACpB,MAAMlL,EAAQkL,EAAK,MACbuE,EAAW,sDACXgJ,EAAiB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,OACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,QACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,OACJ,EAsGQnL,EAAW,CACf,SAAU,sBACV,QAASmL,EACT,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,KACJ,EAkCI,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,MACJ,EA0BI,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,OACJ,CAQA,EAEQC,EAAS,CACb,UAAW,OACX,MAAO,gBACX,EAEQ7L,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAUS,EACV,QAAS,GACb,EAEQqL,EAAkB,CACtB,MAAO,OACP,UAAW,CACf,EAEQhK,EAAS,CACb,UAAW,SACX,SAAU,CAAEzD,EAAK,gBAAkB,EACnC,SAAU,CACR,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACRA,EAAK,iBACLwN,CACD,EACD,UAAW,EACZ,EACD,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACRxN,EAAK,iBACLwN,CACD,EACD,UAAW,EACZ,EACD,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACRxN,EAAK,iBACLwN,EACAC,EACA9L,CACD,CACF,EACD,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACR3B,EAAK,iBACLwN,EACAC,EACA9L,CACD,CACF,EACD,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACZ,EACD,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACZ,EACD,CACE,MAAO,4BACP,IAAK,GACN,EACD,CACE,MAAO,4BACP,IAAK,GACN,EACD,CACE,MAAO,4BACP,IAAK,IACL,SAAU,CACR3B,EAAK,iBACLyN,EACA9L,CACD,CACF,EACD,CACE,MAAO,4BACP,IAAK,IACL,SAAU,CACR3B,EAAK,iBACLyN,EACA9L,CACD,CACF,EACD3B,EAAK,iBACLA,EAAK,iBACN,CACL,EAGQ0N,EAAY,kBACZC,EAAa,QAAQD,SAAS,WAAUA,SAAS,UAASA,SAAS,QAMnEE,EAAY,OAAOL,SAAe,KAAK,GAAG,GAC1C1G,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CAWR,CACE,MAAO,QAAQ6G,SAAS,OAAMC,SAAU,gBAAeD,SAAS,aAAYE,SAAS,IACtF,EACD,CACE,MAAO,IAAID,SAAU,SACtB,EAQD,CACE,MAAO,0CAA0CC,SAAS,IAC3D,EACD,CACE,MAAO,4BAA4BA,SAAS,IAC7C,EACD,CACE,MAAO,6BAA6BA,SAAS,IAC9C,EACD,CACE,MAAO,mCAAmCA,SAAS,IACpD,EAID,CACE,MAAO,OAAOF,SAAS,YAAWE,SAAS,IAC5C,CACF,CACL,EACQC,EAAe,CACnB,UAAW,UACX,MAAO/Y,EAAM,UAAU,SAAS,EAChC,IAAK,IACL,SAAUsN,EACV,SAAU,CACR,CACE,MAAO,SACR,EAED,CACE,MAAO,IACP,IAAK,OACL,eAAgB,EACjB,CACF,CACL,EACQ0D,EAAS,CACb,UAAW,SACX,SAAU,CAER,CACE,UAAW,GACX,MAAO,UACP,KAAM,EACP,EACD,CACE,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,SAAU1D,EACV,SAAU,CACR,OACAoL,EACA3G,EACApD,EACAzD,EAAK,iBACN,CACF,CACF,CACL,EACE,OAAA2B,EAAM,SAAW,CACf8B,EACAoD,EACA2G,CACJ,EAES,CACL,KAAM,SACN,QAAS,CACP,KACA,MACA,SACD,EACD,aAAc,GACd,SAAUpL,EACV,QAAS,cACT,SAAU,CACRoL,EACA3G,EACA,CAEE,MAAO,UACR,EACD,CAGE,cAAe,KACf,UAAW,CACZ,EACDpD,EACAoK,EACA7N,EAAK,kBACL,CACE,MAAO,CACL,QAAS,MACTuE,CACD,EACD,MAAO,CACL,EAAG,UACH,EAAG,gBACJ,EACD,SAAU,CAAEuB,CAAQ,CACrB,EACD,CACE,SAAU,CACR,CACE,MAAO,CACL,UAAW,MACXvB,EAAU,MACV,QAASA,EAAS,OACnB,CACF,EACD,CACE,MAAO,CACL,UAAW,MACXA,CACD,CACF,CACF,EACD,MAAO,CACL,EAAG,UACH,EAAG,cACH,EAAG,uBACJ,CACF,EACD,CACE,UAAW,OACX,MAAO,WACP,IAAK,UACL,SAAU,CACRsC,EACAf,EACArC,CACD,CACF,CACF,CACL,CACA,CCxaA,SAASqK,IAAW9N,EAAM,CACxB,MAAO,CACL,QAAS,CAAE,OAAS,EACpB,SAAU,CACR,CACE,UAAW,cACX,OAAQ,CAGN,IAAK,MACL,OAAQ,CACN,IAAK,IACL,YAAa,QACd,CACF,EACD,SAAU,CACR,CAAE,MAAO,eAAiB,EAC1B,CAAE,MAAO,kBAAoB,CAC9B,CACF,CACF,CACL,CACA,CCnBA,SAAShyH,IAAEgyH,EAAM,CACf,MAAMlL,EAAQkL,EAAK,MAObuE,EAAW,uDACXwJ,EAAkBjZ,EAAM,OAE5B,gDAEA,0CAEA,+CACJ,EACQkZ,EAAe,mEACfC,EAAiBnZ,EAAM,OAC3B,OACA,OACA,OACA,QACA,KACA,GACJ,EAEE,MAAO,CACL,KAAM,IAEN,SAAU,CACR,SAAUyP,EACV,QACE,kDACF,QACE,wFAEF,SAEE,ghCAqBH,EAED,SAAU,CAERvE,EAAK,QACH,KACA,IACA,CAAE,SAAU,CACV,CAME,MAAO,SACP,MAAO,YACP,OAAQ,CACN,IAAKlL,EAAM,UAAUA,EAAM,OAEzB,yBAEA,WAChB,CAAe,EACD,WAAY,EACb,CACF,EACD,CAGE,MAAO,SACP,MAAO,SACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,WACP,SAAU,CACR,CAAE,MAAOyP,CAAU,EACnB,CAAE,MAAO,mBAAqB,CAC/B,EACD,WAAY,EACb,CACF,CACF,EACD,CACE,MAAO,SACP,MAAO,YACR,EACD,CACE,MAAO,UACP,MAAO,aACR,CACX,CAAW,CACJ,EAEDvE,EAAK,kBAEL,CACE,MAAO,SACP,SAAU,CAAEA,EAAK,gBAAkB,EACnC,SAAU,CACRA,EAAK,kBAAkB,CACrB,MAAO,cACP,IAAK,SACjB,CAAW,EACDA,EAAK,kBAAkB,CACrB,MAAO,cACP,IAAK,SACjB,CAAW,EACDA,EAAK,kBAAkB,CACrB,MAAO,cACP,IAAK,SACjB,CAAW,EACDA,EAAK,kBAAkB,CACrB,MAAO,cACP,IAAK,SACjB,CAAW,EACDA,EAAK,kBAAkB,CACrB,MAAO,cACP,IAAK,SACjB,CAAW,EACDA,EAAK,kBAAkB,CACrB,MAAO,cACP,IAAK,SACjB,CAAW,EACD,CACE,MAAO,IACP,IAAK,IACL,UAAW,CACZ,EACD,CACE,MAAO,IACP,IAAK,IACL,UAAW,CACZ,CACF,CACF,EAWD,CACE,UAAW,EACX,SAAU,CACR,CACE,MAAO,CACL,EAAG,WACH,EAAG,QACJ,EACD,MAAO,CACLgO,EACAD,CACD,CACF,EACD,CACE,MAAO,CACL,EAAG,WACH,EAAG,QACJ,EACD,MAAO,CACL,UACAA,CACD,CACF,EACD,CACE,MAAO,CACL,EAAG,cACH,EAAG,QACJ,EACD,MAAO,CACLE,EACAF,CACD,CACF,EACD,CACE,MAAO,CAAE,EAAG,QAAU,EACtB,MAAO,CACL,mBACAA,CACD,CACF,CACF,CACF,EAGD,CAEE,MAAO,CAAE,EAAG,UAAY,EACxB,MAAO,CACLxJ,EACA,MACA,KACA,KACD,CACF,EAED,CACE,MAAO,WACP,UAAW,EACX,SAAU,CACR,CAAE,MAAOyJ,CAAc,EACvB,CAAE,MAAO,SAAW,CACrB,CACF,EAED,CACE,MAAO,cACP,UAAW,EACX,MAAOC,CACR,EAED,CAEE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,MAAS,CAC/B,CACF,CACL,CACA,CCrPA,SAASC,IAAKlO,EAAM,CAClB,MAAMlL,EAAQkL,EAAK,MACbmO,EAAiB,qFAEjBC,EAAgBtZ,EAAM,OAC1B,uBAEA,4BACD,EAEKuZ,EAA+BvZ,EAAM,OAAOsZ,EAAe,UAAU,EAarEE,EAAgB,CACpB,oBAAqB,CACnB,WACA,WACA,cACD,EACD,oBAAqB,CACnB,OACA,OACD,EACD,QAAS,CACP,QACA,MACA,QACA,QACA,QACA,OACA,QACA,UACA,KACA,OACA,QACA,MACA,MACA,SACA,MACA,KACA,KACA,SACA,OACA,MACA,KACA,OACA,UACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,QACA,QApDF,UACA,SACA,UACA,SACA,UACA,YACA,QACA,OA+CC,EACD,SAAU,CACR,OACA,SACA,gBACA,cACA,cACA,gBACA,mBACA,iBACD,EACD,QAAS,CACP,OACA,QACA,KACD,CACL,EACQC,EAAY,CAChB,UAAW,SACX,MAAO,YACX,EACQC,EAAa,CACjB,MAAO,KACP,IAAK,GACT,EACQC,EAAgB,CACpBzO,EAAK,QACH,IACA,IACA,CAAE,SAAU,CAAEuO,EAAa,CAC5B,EACDvO,EAAK,QACH,UACA,QACA,CACE,SAAU,CAAEuO,CAAW,EACvB,UAAW,EACZ,CACF,EACDvO,EAAK,QAAQ,WAAYA,EAAK,gBAAgB,CAClD,EACQ2B,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU2M,CACd,EACQ7K,EAAS,CACb,UAAW,SACX,SAAU,CACRzD,EAAK,iBACL2B,CACD,EACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,aACP,IAAK,GACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,aACP,IAAK,GACN,EACD,CACE,MAAO,aACP,IAAK,GACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EAGD,CAAE,MAAO,iBAAmB,EAC5B,CAAE,MAAO,2BAA6B,EACtC,CAAE,MAAO,iCAAmC,EAC5C,CAAE,MAAO,yDAA2D,EACpE,CAAE,MAAO,yBAA2B,EACpC,CAAE,MAAO,WAAa,EAEtB,CAGE,MAAO7M,EAAM,OACX,YACAA,EAAM,UAAU,0CAA0C,CAC3D,EACD,SAAU,CACRkL,EAAK,kBAAkB,CACrB,MAAO,QACP,IAAK,QACL,SAAU,CACRA,EAAK,iBACL2B,CACD,CACb,CAAW,CACF,CACF,CACF,CACL,EAKQ+M,EAAU,oBACVC,EAAS,kBACT9H,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CAER,CAAE,MAAO,OAAO6H,SAAO,UAASC,SAAM,kBAAiBA,SAAM,aAAc,EAI3E,CAAE,MAAO,gCAAkC,EAC3C,CAAE,MAAO,gCAAkC,EAC3C,CAAE,MAAO,gCAAkC,EAC3C,CAAE,MAAO,4CAA8C,EAGvD,CAAE,MAAO,uBAAyB,CACnC,CACL,EAEQ7I,EAAS,CACb,SAAU,CACR,CACE,MAAO,MACR,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,SACL,aAAc,GACd,WAAY,GACZ,SAAUwI,CACX,CACF,CACL,EA2EQM,EAAwB,CAC5BnL,EA/DuB,CACvB,SAAU,CACR,CACE,MAAO,CACL,WACA4K,EACA,UACAA,CACD,CACF,EACD,CACE,MAAO,CACL,sBACAA,CACD,CACF,CACF,EACD,MAAO,CACL,EAAG,cACH,EAAG,uBACJ,EACD,SAAUC,CACd,EAjCyB,CACrB,MAAO,CACL,sBACAD,CACD,EACD,MAAO,CACL,EAAG,aACJ,EACD,SAAUC,CACd,EA8C0B,CACtB,UAAW,EACX,MAAO,CACLD,EACA,YACD,EACD,MAAO,CACL,EAAG,aACJ,CACL,EA7B8B,CAC1B,UAAW,EACX,MAAO,sBACP,UAAW,mBACf,EA4B0B,CACtB,UAAW,EACX,MAAOD,EACP,MAAO,aACX,EA9B4B,CACxB,MAAO,CACL,MAAO,MACPD,CACD,EACD,MAAO,CACL,EAAG,UACH,EAAG,gBACJ,EACD,SAAU,CACRrI,CACD,CACL,EA4BI,CAEE,MAAO9F,EAAK,SAAW,IAAM,EAC/B,CACE,UAAW,SACX,MAAOA,EAAK,oBAAsB,YAClC,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,WACP,SAAU,CACRyD,EACA,CAAE,MAAO0K,CAAgB,CAC1B,EACD,UAAW,CACZ,EACDtH,EACA,CAGE,UAAW,WACX,MAAO,4DACR,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,UAAW,EACX,SAAUyH,CACX,EACD,CACE,MAAO,IAAMtO,EAAK,eAAiB,eACnC,SAAU,SACV,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACRA,EAAK,iBACL2B,CACD,EACD,QAAS,KACT,SAAU,CACR,CACE,MAAO,IACP,IAAK,SACN,EACD,CACE,MAAO,OACP,IAAK,UACN,EACD,CACE,MAAO,QACP,IAAK,WACN,EACD,CACE,MAAO,MACP,IAAK,SACN,EACD,CACE,MAAO,QACP,IAAK,WACN,CACF,CACF,CACT,EAAQ,OAAO6M,EAAYC,CAAa,EAClC,UAAW,CACZ,CACL,EAAI,OAAOD,EAAYC,CAAa,EAElC9M,EAAM,SAAWiN,EACjB9I,EAAO,SAAW8I,EASlB,MAAMC,EAAc,CAClB,CACE,MAAO,SACP,OAAQ,CACN,IAAK,IACL,SAAUD,CACX,CACF,EACD,CACE,UAAW,cACX,MAAO,iGACP,OAAQ,CACN,IAAK,IACL,SAAUN,EACV,SAAUM,CACX,CACF,CACL,EAEE,OAAAH,EAAc,QAAQD,CAAU,EAEzB,CACL,KAAM,OACN,QAAS,CACP,KACA,UACA,UACA,OACA,KACD,EACD,SAAUF,EACV,QAAS,OACT,SAAU,CAAEtO,EAAK,QAAQ,CAAE,OAAQ,MAAM,CAAE,CAAG,EAC3C,OAAO6O,CAAW,EAClB,OAAOJ,CAAa,EACpB,OAAOG,CAAqB,CACnC,CACA,CCpbA,SAASE,IAAK9O,EAAM,CAClB,MAAMlL,EAAQkL,EAAK,MACbkN,EAAkB,CACtB,UAAW,wBACX,UAAW,EACX,MAAOpY,EAAM,OACX,KACA,YACAkL,EAAK,SACLlL,EAAM,UAAU,OAAO,CAAC,CAC9B,EACQia,EAAgB,wCAChB3M,EAAW,CACf,WACA,KACA,QACA,QACA,SACA,MACA,QACA,QACA,WACA,QACA,KACA,MACA,OACA,OACA,SACA,QACA,QACA,KACA,MACA,KACA,OACA,KACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,WACA,OACA,MACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,SACA,SACA,UACA,MACA,UACA,QACA,QACA,OACJ,EACQC,EAAW,CACf,OACA,QACA,OACA,OACA,KACA,KACJ,EACQ2M,EAAW,CAEf,QAEA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,SACA,UACA,QACA,QACA,YACA,aACA,KACA,MACA,QACA,QACA,OACA,OACA,UACA,WACA,SACA,eACA,sBACA,oBACA,iBACA,WAEA,UACA,aACA,YACA,SACA,OACA,OACA,UACA,iBACA,gBACA,mBACA,OACA,SACA,QACA,UACA,eACA,iBACA,eACA,QACA,kBACA,eACA,cACA,SACA,WACA,UACA,aACA,OACA,iBACA,eACA,OACA,SACA,WACA,eACA,aACA,kBACJ,EACQrM,EAAQ,CACZ,KACA,MACA,MACA,MACA,OACA,QACA,KACA,MACA,MACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,SACA,SACA,SACA,KACJ,EACE,MAAO,CACL,KAAM,OACN,QAAS,CAAE,IAAM,EACjB,SAAU,CACR,SAAU3C,EAAK,SAAW,KAC1B,KAAM2C,EACN,QAASP,EACT,QAASC,EACT,SAAU2M,CACX,EACD,QAAS,KACT,SAAU,CACRhP,EAAK,oBACLA,EAAK,QAAQ,OAAQ,OAAQ,CAAE,SAAU,CAAE,MAAM,EAAI,EACrDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,MAAO,MACP,QAAS,IACjB,CAAO,EACD,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,0BAA4B,EACrC,CAAE,MAAO,iCAAmC,CAC7C,CACF,EACD,CACE,UAAW,SACX,MAAO,yBACR,EACD,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,gBAAkB+O,CAAe,EAC1C,CAAE,MAAO,iBAAmBA,CAAe,EAC3C,CAAE,MAAO,uBAAyBA,CAAe,EACjD,CAAE,MAAO,kDACEA,CAAe,CAC3B,EACD,UAAW,CACZ,EACD,CACE,MAAO,CACL,KACA,MACA/O,EAAK,mBACN,EACD,UAAW,CACT,EAAG,UACH,EAAG,gBACJ,CACF,EACD,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACN,CACF,CACF,EACD,CACE,MAAO,CACL,MACA,MACA,cACAA,EAAK,mBACN,EACD,UAAW,CACT,EAAG,UACH,EAAG,UACH,EAAG,UACJ,CACF,EAED,CACE,MAAO,CACL,MACA,MACAA,EAAK,oBACL,MACA,IACD,EACD,UAAW,CACT,EAAG,UACH,EAAG,WACH,EAAG,SACJ,CACF,EACD,CACE,MAAO,CACL,OACA,MACAA,EAAK,mBACN,EACD,UAAW,CACT,EAAG,UACH,EAAG,aACJ,CACF,EACD,CACE,MAAO,CACL,uCACA,MACAA,EAAK,mBACN,EACD,UAAW,CACT,EAAG,UACH,EAAG,aACJ,CACF,EACD,CACE,MAAOA,EAAK,SAAW,KACvB,SAAU,CACR,QAAS,OACT,SAAUgP,EACV,KAAMrM,CACP,CACF,EACD,CACE,UAAW,cACX,MAAO,IACR,EACDuK,CACD,CACL,CACA,CC7SA,MAAMrJ,IAAS7D,IACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACR,EACD,cAAeA,EAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACR,EACD,kBAAmB,CACjB,UAAW,WACX,MAAO,cACR,EACD,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,EACD,gBAAiB,CACf,MAAO,SACP,MAAOA,EAAK,UAAY,kGASxB,UAAW,CACZ,EACD,aAAc,CACZ,UAAW,OACX,MAAO,0BACR,CACL,GAGM8D,IAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,IAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAGMC,IAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAGMC,IAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAEMC,IAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,SAGF,EAAE,QAAO,EAWT,SAAS+K,IAAKjP,EAAM,CAClB,MAAMmE,EAAQN,IAAM7D,CAAI,EAClBkP,EAAoBjL,IACpBkL,EAAmBnL,IAEnBJ,EAAgB,WAChBS,EAAe,kBAEfkE,EAAW,CACf,UAAW,WACX,MAAO,kCACP,UAAW,CACf,EAEE,MAAO,CACL,KAAM,OACN,iBAAkB,GAClB,QAAS,SACT,SAAU,CACRvI,EAAK,oBACLA,EAAK,qBAGLmE,EAAM,gBACN,CACE,UAAW,cACX,MAAO,kBACP,UAAW,CACZ,EACD,CACE,UAAW,iBACX,MAAO,oBACP,UAAW,CACZ,EACDA,EAAM,wBACN,CACE,UAAW,eACX,MAAO,OAASL,IAAK,KAAK,GAAG,EAAI,OAEjC,UAAW,CACZ,EACD,CACE,UAAW,kBACX,MAAO,KAAOqL,EAAiB,KAAK,GAAG,EAAI,GAC5C,EACD,CACE,UAAW,kBACX,MAAO,SAAWD,EAAkB,KAAK,GAAG,EAAI,GACjD,EACD3G,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAEpE,EAAM,eAAiB,CACpC,EACDA,EAAM,aACN,CACE,UAAW,YACX,MAAO,OAASD,IAAW,KAAK,GAAG,EAAI,MACxC,EACD,CAAE,MAAO,4oCAA8oC,EACvpC,CACE,MAAO,IACP,IAAK,QACL,UAAW,EACX,SAAU,CACRC,EAAM,cACNoE,EACApE,EAAM,SACNA,EAAM,gBACNnE,EAAK,kBACLA,EAAK,iBACLmE,EAAM,UACNA,EAAM,iBACP,CACF,EAID,CACE,MAAO,oBACP,SAAU,CACR,SAAUP,EACV,QAAS,kBACV,CACF,EACD,CACE,MAAO,IACP,IAAK,OACL,YAAa,GACb,SAAU,CACR,SAAU,UACV,QAASS,EACT,UAAWN,IAAe,KAAK,GAAG,CACnC,EACD,SAAU,CACR,CACE,MAAOH,EACP,UAAW,SACZ,EACD,CACE,MAAO,eACP,UAAW,WACZ,EACD2E,EACAvI,EAAK,kBACLA,EAAK,iBACLmE,EAAM,SACNA,EAAM,eACP,CACF,EACDA,EAAM,iBACP,CACL,CACA,CC3sBA,SAASiL,IAAMpP,EAAM,CACnB,MAAO,CACL,KAAM,gBACN,QAAS,CACP,UACA,cACD,EACD,SAAU,CACR,CACE,UAAW,cAIX,MAAO,qCACP,OAAQ,CACN,IAAK,gBACL,YAAa,MACd,CACF,CACF,CACL,CACA,CCRA,SAASqP,IAAIrP,EAAM,CACjB,MAAMlL,EAAQkL,EAAK,MACbsP,EAAetP,EAAK,QAAQ,KAAM,GAAG,EACrCyD,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,KAAQ,CAC9B,CACF,CACL,EACQ8L,EAAoB,CACxB,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,KAAQ,CACjC,EAEQlN,EAAW,CACf,OACA,QAGA,SACJ,EAEQmN,EAAmB,CACvB,mBACA,eACA,gBACA,kBACJ,EAEQ7M,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,WACJ,EAEQ8M,EAAqB,CACzB,MACA,MACA,YACA,OACA,QACA,QACA,OACA,MACJ,EAGQlC,EAAiB,CACrB,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,MACJ,EAKQmC,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,cACJ,EAGQC,EAA0B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,gBACJ,EAIQC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,eACJ,EAEQC,EAAYH,EAEZtN,EAAW,CACf,GAAGmL,EACH,GAAGkC,CACP,EAAI,OAAQK,GACD,CAACJ,EAAmB,SAASI,CAAO,CAC5C,EAEKvH,EAAW,CACf,UAAW,WACX,MAAO,qBACX,EAEQwH,EAAW,CACf,UAAW,WACX,MAAO,gDACP,UAAW,CACf,EAEQnI,EAAgB,CACpB,MAAO9S,EAAM,OAAO,KAAMA,EAAM,OAAO,GAAG+a,CAAS,EAAG,OAAO,EAC7D,UAAW,EACX,SAAU,CAAE,SAAUA,CAAW,CACrC,EAGE,SAASG,EAAgB/nG,EAAM,CAC7B,WAAAgoG,EAAY,KAAAC,CACb,EAAG,GAAI,CACN,MAAMC,EAAYD,EAClB,OAAAD,EAAaA,GAAc,GACpBhoG,EAAK,IAAKC,GACXA,EAAK,MAAM,QAAQ,GAAK+nG,EAAW,SAAS/nG,CAAI,EAC3CA,EACEioG,EAAUjoG,CAAI,EAChB,GAAGA,SAAI,MAEPA,CAEV,CACF,CAED,MAAO,CACL,KAAM,MACN,iBAAkB,GAElB,QAAS,WACT,SAAU,CACR,SAAU,YACV,QACE8nG,EAAgB5N,EAAU,CAAE,KAAOh/G,GAAMA,EAAE,OAAS,EAAG,EACzD,QAASi/G,EACT,KAAMM,EACN,SAAUgN,CACX,EACD,SAAU,CACR,CACE,MAAO7a,EAAM,OAAO,GAAG8a,CAAM,EAC7B,UAAW,EACX,SAAU,CACR,SAAU,UACV,QAASxN,EAAS,OAAOwN,CAAM,EAC/B,QAASvN,EACT,KAAMM,CACP,CACF,EACD,CACE,UAAW,OACX,MAAO7N,EAAM,OAAO,GAAG0a,CAAgB,CACxC,EACD5H,EACAW,EACA9E,EACA8L,EACAvP,EAAK,cACLA,EAAK,qBACLsP,EACAS,CACD,CACL,CACA,CC9pBA,SAASjiG,GAAO++E,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIlB,CAMA,SAAS+gB,GAAU/gB,EAAI,CACrB,OAAOujB,GAAO,MAAOvjB,EAAI,GAAG,CAC9B,CAMA,SAASujB,MAAUxnG,EAAM,CAEvB,OADeA,EAAK,IAAKxlB,GAAM0qB,GAAO1qB,CAAC,CAAC,EAAE,KAAK,EAAE,CAEnD,CAMA,SAASitH,IAAqBznG,EAAM,CAClC,MAAMw5D,EAAOx5D,EAAKA,EAAK,OAAS,CAAC,EAEjC,OAAI,OAAOw5D,GAAS,UAAYA,EAAK,cAAgB,QACnDx5D,EAAK,OAAOA,EAAK,OAAS,EAAG,CAAC,EACvBw5D,GAEA,EAEX,CAWA,SAASkuC,MAAU1nG,EAAM,CAMvB,MAHe,KADFynG,IAAqBznG,CAAI,EAE5B,QAAU,GAAK,MACrBA,EAAK,IAAKxlB,GAAM0qB,GAAO1qB,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,GAE7C,CAEA,MAAMmtH,GAAiBT,GAAWM,GAChC,KACAN,EACA,MAAM,KAAKA,CAAO,EAAI,KAAO,IAC/B,EAGMU,IAAc,CAClB,WACA,MACF,EAAE,IAAID,EAAc,EAGdE,GAAsB,CAC1B,OACA,MACF,EAAE,IAAIF,EAAc,EAGdG,IAAe,CACnB,MACA,MACF,EAGMC,GAAW,CAIf,QACA,MACA,iBACA,QACA,QACA,OACA,MACA,KACA,QACA,OACA,QACA,QACA,WACA,cACA,UACA,QACA,SACA,SACA,cACA,KACA,UACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,WACA,cACA,OACA,MACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,SACF,EAMMC,GAAW,CACf,QACA,MACA,MACF,EAGMC,IAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,OACF,EAIMC,IAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,2BACA,UACF,EAGMC,GAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,KACF,EAGMC,GAAeV,GACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,UACF,EAGMW,GAAoBX,GACxBU,GACA,kBACA,kBACA,kBACA,kBACA,iBAGF,EAGME,GAAWd,GAAOY,GAAcC,GAAmB,GAAG,EAGtDE,GAAiBb,GACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,8BAMF,EAGMc,GAAsBd,GAC1Ba,GACA,KACA,wDACF,EAGME,GAAajB,GAAOe,GAAgBC,GAAqB,GAAG,EAG5DE,GAAiBlB,GAAO,QAASgB,GAAqB,GAAG,EAIzDG,IAAoB,CACxB,cACAnB,GAAO,eAAgBE,GAAO,QAAS,QAAS,GAAG,EAAG,IAAI,EAC1D,oBACA,kBACA,sBACA,WACA,SACA,gBACA,WACA,eACA,gBACA,WACA,gBACA,YACA,OACA,UACA,oBACA,YACA,YACAF,GAAO,SAAUiB,GAAY,IAAI,EACjC,OACA,cACA,kBACA,iCACA,gBACA,WACA,oBACA,UACA,kBACF,EAGMG,IAAuB,CAC3B,MACA,0BACA,QACA,4BACA,cACA,kCACA,UACA,8BACA,OACA,2BACA,OACF,EAYA,SAASC,IAAMzR,EAAM,CACnB,MAAM0M,EAAa,CACjB,MAAO,MACP,UAAW,CACf,EAEQgF,EAAgB1R,EAAK,QACzB,OACA,OACA,CAAE,SAAU,CAAE,OAAU,CAC5B,EACQ4E,EAAW,CACf5E,EAAK,oBACL0R,CACJ,EAIQC,EAAc,CAClB,MAAO,CACL,KACArB,GAAO,GAAGE,IAAa,GAAGC,EAAmB,CAC9C,EACD,UAAW,CAAE,EAAG,SAAW,CAC/B,EACQmB,EAAgB,CAEpB,MAAOxB,GAAO,KAAME,GAAO,GAAGK,EAAQ,CAAC,EACvC,UAAW,CACf,EACQkB,EAAiBlB,GACpB,OAAOmB,IAAM,OAAOA,IAAO,QAAQ,EACnC,OAAO,CAAE,KAAK,CAAE,EACbC,EAAiBpB,GACpB,OAAOmB,IAAM,OAAOA,IAAO,QAAQ,EACnC,OAAOpB,GAAY,EACnB,IAAIH,EAAc,EACfyB,EAAU,CAAE,SAAU,CAC1B,CACE,UAAW,UACX,MAAO1B,GAAO,GAAGyB,EAAgB,GAAGtB,EAAmB,CACxD,CACL,GAEQrO,EAAW,CACf,SAAUkO,GACR,QACA,MACD,EACD,QAASuB,EACN,OAAOf,GAAkB,EAC5B,QAASF,EACb,EACQqB,EAAgB,CACpBN,EACAC,EACAI,CACJ,EAGQE,EAAiB,CAErB,MAAO9B,GAAO,KAAME,GAAO,GAAGS,EAAQ,CAAC,EACvC,UAAW,CACf,EACQoB,EAAW,CACf,UAAW,WACX,MAAO/B,GAAO,KAAME,GAAO,GAAGS,EAAQ,EAAG,QAAQ,CACrD,EACQ7K,EAAY,CAChBgM,EACAC,CACJ,EAGQC,EAAiB,CAErB,MAAO,KACP,UAAW,CACf,EACQrC,EAAW,CACf,UAAW,WACX,UAAW,EACX,SAAU,CACR,CAAE,MAAOmB,EAAU,EACnB,CAIE,MAAO,WAAWD,UAAiB,KAAM,CAC5C,CACL,EACQoB,EAAY,CAChBD,EACArC,CACJ,EAIQ3K,EAAgB,aAChBE,EAAY,mBACZuB,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CAER,CAAE,MAAO,OAAOzB,SAAa,UAASA,SAAa,kBAAsBA,SAAa,SAAU,EAEhG,CAAE,MAAO,SAASE,SAAS,UAASA,SAAS,kBAAsBF,SAAa,SAAU,EAE1F,CAAE,MAAO,kBAAoB,EAE7B,CAAE,MAAO,iBAAmB,CAC7B,CACL,EAGQkN,EAAoB,CAACC,GAAe,MAAQ,CAChD,UAAW,QACX,SAAU,CACR,CAAE,MAAOnC,GAAO,KAAMmC,GAAc,YAAY,CAAG,EACnD,CAAE,MAAOnC,GAAO,KAAMmC,GAAc,uBAAuB,CAAG,CAC/D,CACL,GACQC,EAAkB,CAACD,GAAe,MAAQ,CAC9C,UAAW,QACX,MAAOnC,GAAO,KAAMmC,GAAc,uBAAuB,CAC7D,GACQE,EAAgB,CAACF,GAAe,MAAQ,CAC5C,UAAW,QACX,MAAO,WACP,MAAOnC,GAAO,KAAMmC,GAAc,IAAI,EACtC,IAAK,IACT,GACQG,EAAmB,CAACH,GAAe,MAAQ,CAC/C,MAAOnC,GAAOmC,GAAc,KAAK,EACjC,IAAKnC,GAAO,MAAOmC,EAAY,EAC/B,SAAU,CACRD,EAAkBC,EAAY,EAC9BC,EAAgBD,EAAY,EAC5BE,EAAcF,EAAY,CAC3B,CACL,GACQI,EAAqB,CAACJ,GAAe,MAAQ,CACjD,MAAOnC,GAAOmC,GAAc,GAAG,EAC/B,IAAKnC,GAAO,IAAKmC,EAAY,EAC7B,SAAU,CACRD,EAAkBC,EAAY,EAC9BE,EAAcF,EAAY,CAC3B,CACL,GACQ9O,EAAS,CACb,UAAW,SACX,SAAU,CACRiP,EAAkB,EAClBA,EAAiB,GAAG,EACpBA,EAAiB,IAAI,EACrBA,EAAiB,KAAK,EACtBC,EAAoB,EACpBA,EAAmB,GAAG,EACtBA,EAAmB,IAAI,EACvBA,EAAmB,KAAK,CACzB,CACL,EAGQpD,EAAoB,CAAE,MAAOa,GAAO,IAAKiB,GAAY,GAAG,GACxDuB,EAAqB,CACzB,UAAW,WACX,MAAO,OACX,EACQC,EAA8B,CAClC,UAAW,WACX,MAAO,MAAMzB,UAAmB,IACpC,EACQ0B,EAAc,CAClBvD,EACAqD,EACAC,CACJ,EAGQE,EAAsB,CAC1B,MAAO,sBACP,UAAW,UACX,OAAQ,CAAE,SAAU,CAClB,CACE,MAAO,KACP,IAAK,KACL,SAAUvB,IACV,SAAU,CACR,GAAGa,EACHxL,EACApD,CACD,CACF,CACP,CAAO,CACP,EACQuP,EAAoB,CACxB,UAAW,UACX,MAAO5C,GAAO,IAAKE,GAAO,GAAGiB,GAAiB,CAAC,CACnD,EACQ0B,EAAyB,CAC7B,UAAW,OACX,MAAO7C,GAAO,IAAKiB,EAAU,CACjC,EACQnN,EAAa,CACjB6O,EACAC,EACAC,CACJ,EAGQC,EAAO,CACX,MAAOtF,GAAU,SAAS,EAC1B,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAOwC,GAAO,gEAAiEgB,GAAqB,GAAG,CACxG,EACD,CACE,UAAW,OACX,MAAOE,GACP,UAAW,CACZ,EACD,CACE,MAAO,QACP,UAAW,CACZ,EACD,CACE,MAAO,SACP,UAAW,CACZ,EACD,CACE,MAAOlB,GAAO,UAAWxC,GAAU0D,EAAc,CAAC,EAClD,UAAW,CACZ,CACF,CACL,EACQ6B,EAAoB,CACxB,MAAO,IACP,IAAK,IACL,SAAU/Q,EACV,SAAU,CACR,GAAGwC,EACH,GAAGqN,EACH,GAAG/N,EACHkO,EACAc,CACD,CACL,EACEA,EAAK,SAAS,KAAKC,CAAiB,EAIpC,MAAMC,EAAqB,CACzB,MAAOhD,GAAOiB,GAAY,MAAM,EAChC,SAAU,MACV,UAAW,CACf,EAEQgC,EAAQ,CACZ,MAAO,KACP,IAAK,KACL,UAAW,EACX,SAAUjR,EACV,SAAU,CACR,OACAgR,EACA,GAAGxO,EACH,GAAGqN,EACH,GAAG/L,EACH,GAAGmM,EACHxL,EACApD,EACA,GAAGqP,EACH,GAAG5O,EACHgP,CACD,CACL,EAEQI,EAAqB,CACzB,MAAO,IACP,IAAK,IACL,SAAU,CACR,GAAG1O,EACHsO,CACD,CACL,EACQK,GAA0B,CAC9B,MAAOjD,GACL1C,GAAUwC,GAAOiB,GAAY,MAAM,CAAC,EACpCzD,GAAUwC,GAAOiB,GAAY,MAAOA,GAAY,MAAM,CAAC,CACxD,EACD,IAAK,IACL,UAAW,EACX,SAAU,CACR,CACE,UAAW,UACX,MAAO,OACR,EACD,CACE,UAAW,SACX,MAAOA,EACR,CACF,CACL,EACQmC,GAAsB,CAC1B,MAAO,KACP,IAAK,KACL,SAAUpR,EACV,SAAU,CACRmR,GACA,GAAG3O,EACH,GAAGqN,EACH,GAAGI,EACHxL,EACApD,EACA,GAAGS,EACHgP,EACAG,CACD,EACD,WAAY,GACZ,QAAS,MACb,EAEQlR,EAAW,CACf,MAAO,CACL,OACA,MACAmO,GAAOf,EAAkB,MAAO8B,GAAYH,EAAQ,CACrD,EACD,UAAW,CACT,EAAG,UACH,EAAG,gBACJ,EACD,SAAU,CACRoC,EACAE,GACA9G,CACD,EACD,QAAS,CACP,KACA,GACD,CACL,EAIQ+G,GAAiB,CACrB,MAAO,CACL,4BACA,aACD,EACD,UAAW,CAAE,EAAG,SAAW,EAC3B,SAAU,CACRH,EACAE,GACA9G,CACD,EACD,QAAS,MACb,EAEQgH,GAAuB,CAC3B,MAAO,CACL,WACA,MACAxC,EACD,EACD,UAAW,CACT,EAAG,UACH,EAAG,OACJ,CACL,EAGQyC,GAAkB,CACtB,MAAO,CACL,kBACA,MACArC,EACD,EACD,UAAW,CACT,EAAG,UACH,EAAG,OACJ,EACD,SAAU,CAAE4B,CAAM,EAClB,SAAU,CACR,GAAGrC,IACH,GAAGD,EACJ,EACD,IAAK,GACT,EAGE,UAAWgD,MAAWnQ,EAAO,SAAU,CACrC,MAAMoQ,GAAgBD,GAAQ,SAAS,KAAK/6B,IAAQA,GAAK,QAAU,UAAU,EAE7Eg7B,GAAc,SAAWzR,EACzB,MAAM0R,GAAW,CACf,GAAG7B,EACH,GAAG/L,EACH,GAAGmM,EACHxL,EACApD,EACA,GAAGqP,CACT,EACIe,GAAc,SAAW,CACvB,GAAGC,GACH,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,OACA,GAAGA,EACJ,CACF,CACP,CACG,CAED,MAAO,CACL,KAAM,QACN,SAAU1R,EACV,SAAU,CACR,GAAGwC,EACHzC,EACAsR,GACA,CACE,cAAe,6CACf,IAAK,MACL,WAAY,GACZ,SAAUrR,EACV,SAAU,CACRpC,EAAK,QAAQA,EAAK,WAAY,CAC5B,UAAW,cACX,MAAO,uCACnB,CAAW,EACD,GAAGiS,CACJ,CACF,EACDyB,GACAC,GACA,CACE,cAAe,SACf,IAAK,IACL,SAAU,CAAE,GAAG/O,CAAU,EACzB,UAAW,CACZ,EACD,GAAGqN,EACH,GAAG/L,EACH,GAAGmM,EACHxL,EACApD,EACA,GAAGqP,EACH,GAAG5O,EACHgP,EACAG,CACD,CACL,CACA,CCz1BA,MAAM9O,GAAW,2BACXnC,GAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,SACF,EACMC,GAAW,CACf,OACA,QACA,OACA,YACA,MACA,UACF,EAGMM,GAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,aACF,EAEMoD,GAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,UACF,EAEMC,GAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,Q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ACL,SAAU,CAAEA,CAAc,CAC3B,EACD,CAAE,MAAO,cAAgB,CAC1B,CACF,CACF,CACF,CACF,CACL,EACE,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,KACD,EACD,iBAAkB,GAClB,aAAc,GACd,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACRC,EACAG,EACAD,EACAD,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACRD,EACAC,EACAE,EACAD,CACD,CACF,CACF,CACF,CACF,CACF,EACD3V,EAAK,QACH,OACA,MACA,CAAE,UAAW,EAAI,CAClB,EACD,CACE,MAAO,cACP,IAAK,QACL,UAAW,EACZ,EACDwV,EAEA,CACE,UAAW,OACX,IAAK,MACL,SAAU,CACR,CACE,MAAO,SACP,UAAW,GACX,SAAU,CACRI,CACD,CACF,EACD,CACE,MAAO,mBACR,CACF,CAEF,EACD,CACE,UAAW,MAMX,MAAO,iBACP,IAAK,IACL,SAAU,CAAE,KAAM,OAAS,EAC3B,SAAU,CAAEC,CAAe,EAC3B,OAAQ,CACN,IAAK,YACL,UAAW,GACX,YAAa,CACX,MACA,KACD,CACF,CACF,EACD,CACE,UAAW,MAEX,MAAO,kBACP,IAAK,IACL,SAAU,CAAE,KAAM,QAAU,EAC5B,SAAU,CAAEA,CAAe,EAC3B,OAAQ,CACN,IAAK,aACL,UAAW,GACX,YAAa,CACX,aACA,aACA,KACD,CACF,CACF,EAED,CACE,UAAW,MACX,MAAO,SACR,EAED,CACE,UAAW,MACX,MAAO/gB,EAAM,OACX,IACAA,EAAM,UAAUA,EAAM,OACpBwgB,EAIAxgB,EAAM,OAAO,MAAO,IAAK,IAAI,CACzC,CAAW,CACF,EACD,IAAK,OACL,SAAU,CACR,CACE,UAAW,OACX,MAAOwgB,EACP,UAAW,EACX,OAAQO,CACT,CACF,CACF,EAED,CACE,UAAW,MACX,MAAO/gB,EAAM,OACX,MACAA,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AK,MAAM,EAC3G,CAACA,IACH,MAAM,IAAI,MAAM,0GAA0G,EAG9H,OAAOA,GAAgBspE,GAAK,CAC9B,CChBA,IAAIE,IAAa,OAAO,OAAW,KAAe,OAAO,YAAc,OAAO,WAAW,KAAK,MAAM,EACpG,MAAeC,GAAA,CACb,WAAAD,GACF,ECAA,SAASE,IAAG15I,EAASiqE,EAAKlzE,EAAQ,CAChC,GAAI0iJ,GAAO,YAAc,CAACxvE,GAAO,CAACjqE,EAChC,OAAOy5I,GAAO,aAEhBz5I,EAAUA,GAAW,GACrB,IAAI25I,EAAO35I,EAAQ,SAAWA,EAAQ,KAAOu5I,OAG7C,OAAAI,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,GAC3BA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,IAUpBN,IAAgBM,CAAI,CAC7B,CCHA,MAAAx7E,IAAA,CACA,6BACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,kmBChBAA,IAAA,CACA,sBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,ixBChBAA,IAAA,CACA,eACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,svBChBAA,IAAA,CACA,kBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,qyBChBAA,IAAA,CACA,gBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,mvBChBAA,IAAA,CACA,uBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,uoBC7Bey7E,GAAA,CACd,MAAO,CACN,MAAO,CACN,OAAQ,GACR,YAAa,GACb,YAAa,EACb,CACD,EAED,QAAS,CACR,MAAM,gBAAgBnmJ,EAAS,CAE9B,KAAK,YAAc,GAGnB,GAAI,CACH,MAAM,UAAU,UA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,CACA,uBACA,YACA,sBAAA6C,GACA,oBAAAE,GACA,qBAAAE,GACA,OAAAU,GACA,eAAAw4E,GACA,oBAAAwT,GACA,UAAAzT,GACA,gBAAAl9E,GACA,gBAAAD,GACA,qBAAA8I,GACA,oBAAAF,EACA,EACA,OACA,QACA,YACA,WACA,EACA,QACA,cACA,WACA,EACA,MACA,YACA,WACA,CACA,EACA,OACA,OACA,aACA,CACA,EACA,UACA,YACA,8CACA,CACA,EACA,cACA,uCACA,iCAAAlqC,CAAA,KACA,gBAAAA,EAAA,UACA,EACA,EACA,SACA,cACA,oBACA,EACA,YACA,kBACA,EACA,aACA,mBACA,EACA,MAAAmyH,EAAA,CAMA,IALA,oBACA,QACA,gCACA,6BAAAA,CAAA,EACA,MACA,oCACA,kDAAAA,CAAA,EAGA,oBACA,gCACA,QACA,MACA,6BACA,EACA,eACA,oBACA,QACA,gCACA,eACA,KACA,EACA,kBACA,oBACA,QACA,gCACA,kBACA,KACA,EACA,iBACA,oBACA,QACA,gCACA,iBACA,KACA,CACA,CACA,upEC7JA,SAASC,GAAmBv7J,EAAMylB,EAAM,CACvC,OAAOzlB,EAAK,OAAO,CAClB,aAAc,CACb,OAAOqrE,GAAoB5lD,CAAI,CAC/B,CACH,CAAE,CACF,CAEA,MAAe+1I,IAAAroF,GAAM,OAAO,CAE3B,aAAc,CACb,OAAO9H,GAAoB2nF,GAAS,CACpC,EAED,eAAgB,CACf,MAAO,CACN6G,GACA0B,GAAmBzB,GAAW2B,GAAa,EAC3CF,GAAmBjB,GAAaoB,GAAe,EAC/CjB,GACAD,EACA,CACD,CACF,CAAC,ECpCDmB,GAAe,CAAC,CACf,cAAAC,EACA,MAAAxwH,EAAQ,IAAM,CAAE,EAChB,QAAAhC,EAAU,CAAC,CAAE,OAAAD,EAAQ,MAAAlxB,EAAO,MAAAra,CAAO,IAAK,CAAE,CAC3C,KAAO,CACN,MAAAwtC,EACA,QAAAhC,EACA,OAAQ,IAAM,CACb,IAAI0Z,EACA+4G,EAEJ,MAAO,CACN,QAASj+J,GAAS,CACjBklD,EAAY,IAAI6nB,GAAYixF,EAA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G,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,IAAG,KAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,GACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,GACH,EAAG,IACH,EAAG,KACH,EAAG,KAEH,EAAG,KACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,KACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IAEH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAA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ACA,iBACA,YACA,UAAA00F,GACA,WAAAC,GACA,SAAA1rF,GACA,eAAA2rF,IACA,gBAAA51F,EACA,EACA,YACA,aAAA61F,GACA,EACA,QACA7yF,GACA8yF,EACA,EACA,oEACA,OACA,OACA,gBACA,eACA,UACA,UACA,aACA,cACA,kBACA,oBACA,kBACA,gBACA,cACA,oBACA,CACA,EACA,UACA,GAAAC,GAAA,CACA,wCACA,GACA,iBACA,uBACA,wCAEA,IAEA,EACA,oBACA,oCACA,EACA,iBACA,sCACA,EACA,sBACA,mDACA,EACA,kBACA,gCACA,GAGA,6BACA,EACA,KACA,MACA,8BACA,EACA,IAAAtrF,EAAA,CACA,uBACA,IAAAA,CACA,EACA,CACA,EACA,KACA,MACA,iDACA,EACA,IAAAjxC,EAAA,CACA,uBACA,IAAAA,CACA,EACA,CACA,CACA,EACA,cACA,uCACA,iCAAAiF,CAAA,KACA,gBAAAA,EAAA,UACA,GACA,mBACA,8BACA,EACA,SACA,oBAEA,GADA,iEACA,4BACA,sDAEA,oBAAAvpC,EAAAC,IAAA,CACA,MAAAuyB,EAAA,UACAA,EAAA,iBACA,yCACA,oBACA,eACA,wCACA,EACAA,EAAA,QAAAtc,GAAA,CACAjW,EAAA,IAAAqgK,GAAApqJ,EAAA,4BACA,EACAsc,EAAA,8BACA,EACA,EACA,mBAAApU,EAAA,CACA,eACA,oBACA,eACA,kBAAAA,EAAA,QAEAA,aAAAkiJ,KACA,qEAGA,0BAAAliJ,EAAA,cACA,EACA,UAAA0F,EAAA,CACA,uBACA,IAAAA,EAAA,YACA,EACA,EACA,WACA,cACA,EACA,gCACA,0BAEA,MAAAg9I,EAAA,+IACA,UAAAC,KAAAD,EAAA,CACA,MAAAvrF,EAAAwrF,EAAA,yBACA,2CAAAxrF,CAAA,GAEA,MAAAyrF,EAAA,uCAAAD,EAAA,0BACA,6BACA,IAAAxrF,EACA,GAAAyrF,CACA,EACA,CACA,CACA,EACA,wBAEA,eAEA,kBAEA,6DAGA,yBAEA,gDACA,MACA,CAGA,+CACA,EACA,yBACA,qCACA,iDAAA3/J,K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CAC7B,OAAQ,CACP,QAAS,CAAE,KAAMD,IAAS,QAAS,IAAM,CACzC,EACD,SAAU,CACT,gBAAiB,CAChB,MAAO,IAAI,YAAK,QAChB,CACD,CACF,ECWA52F,IAAA,CACA,yBACA,YACA,cAAA82F,GACA,SAAA7tF,EACA,EACA,QAAAytF,GACA,QAAAG,EAAA,EACA,SACA,aAAA9sJ,EAAA,OAAAuxI,GAAA,CACA,iBACA,gCAAAvxI,EAAA,OAAAuxI,EAAA,EACA,QACA,KACA,CACA,CACA,ghBCQAt7E,IAAA,CACA,8BACA,YACA,UAAAk8E,GACA,eAAAC,GACA,QAAA15E,GACA,OAAA0B,GACA,OAAAwE,EACA,EACA,QAAA+tF,GACA,QACAK,GACAC,GACAC,GACAC,GACAC,GACAN,EACA,EACA,UACA,OACA,mCACAp0F,GACA,qBACA,EACA,yBACA,kDACA,CACA,CACA,+sCCAAzC,IAAA,CACA,wBACA,YACA,UAAAk8E,GACA,eAAAC,GACA,cAAAC,GACA,SAAAv4E,GACA,QAAApB,GACA,QAAAsE,GACA,IAAAgC,GACA,MAAAxB,EACA,EACA,QAAAmvF,GACA,QACAU,GACAP,EACA,EACA,UACA,CACA,QACA,eACA,eAEA,YACA,qBAAAQ,GAAA,wCACA,GAEA,UACA,cACA,uCACA,EACA,uBACA,OAAAziK,GAAAR,EAAA,yBAAAA,EAAA,oBAAAQ,EAAA,GACA,CACA,EACA,SAKA,WACA,wBACA,mEAGAQ,GAAA,8CACA,wBACA,qBACA,mBACA,QAAAjC,GAAA,QACA,QAEA,OACA,KAAAmkK,GAAA,CACA,qBACA,YAAAA,CAAA,QAAAC,EAAAC,IAAA,CACA,MAAA51F,EAAA,QAAA61F,GAAA,MAAAD,SAAA,oBACA,aAAA51F,EAAA,KAAA41F,EAAA,MACA,eAAAA,EAAA,MAAAA,EAAA,iBAAAA,SAAA,aACA,GACA,gBACA,GACA,WAEA,iCACA,EACA,EAOA,YAAAx/I,EAAA,CACA,IAAAA,iBAAA,kBACA,MAAA0iG,EAAA,IAAA1iG,EAAA,wBAAA5N,qBAAA,yBACA,wBACA,oBACA,aACA,aAAAswG,GAAA,CACA,CAEA,GAAAnrE,GAAA,4BACA,MAAAv2C,EAAAs0C,GAAA,2BACA,UAAAt0C,EAAA,IACA,CACA,mBACA,EAQA,QAAA4oE,EAAAjqE,EAAA,OAUAiqE,GAAA,CARA,CACA,cACA,MACA,YACA,WACA,aACA,IACA,EACA,KAAAioD,GAAAjoD,EAAA,MAAAioD,CAAA,KACAjoD,EAAA,WAAAA,GAIA,MAAA84C,EAAA94C,EAAA,sBACA1jC,EAAA,sBAEA9pC,EAAA,gCAAAA,EAAA,gBACA8pC,EAAA,eACA,iBACA,UACA,YACA,QACA,YACA,OACA,KAAAw8E,CACA,CACA,GACA,KAAA/iH,CACA,EACA,GAEAumC,EAAA,cAAAw8E,EAAA,EAEAx8E,EAAA,aACA,EAKA,aACA,+CACA,gBACA,EACA,aACAw5H,GAAA,SACA,KAAAj6C,GAAA,OACA,MAAAv/E,EAAA,sBACA9pC,EAAA,gCAAAA,EAAA,gBACA8pC,EAAA,sBAAAu/E,CAAA,QAEAv/E,EAAA,cAAAu/E,CAAA,gBAEA,GACA,MAAArzE,GAAA,CACA,8CAAAA,CAAA,CACA,EACA,CACA,CACA,iiEC/LautH,IAAkB,CAAC,CAC/B,IAAK,UACL,WAAY,GACZ,KAAMhyF,GACN,MAAO,CAAC,CAAE,gBAAAiyF,KAAsBA,EAAgB,OAAQ,EACxD,MAAO,CAAC,CAAE,cAAAC,KACFA,EAAc,QAClB,EAAE,OAAQ,cAAc,EACxB,EAAE,OAAQ,cAAc,CAE7B,CAAC,EAEcC,GAAA,CACd,CACC,IAAK,OACL,MAAO,EAAE,OAAQ,MAAM,EACvB,QAAS,IACT,aAAc,CAACjC,GAAU,GAAG,EAC5B,KAAMttF,GACN,OAAS7qC,GAAYA,EAAQ,KAAM,EACnC,SAAU,CACV,EACD,CACC,IAAK,OACL,MAAO,EAAE,OAAQ,MAAM,EACvB,QAAS,IACT,aAAc,CAACm4H,GAAU,GAAG,EAC5B,KAAMxuF,GACN,OAAS3pC,GAAYA,EAAQ,KAAM,EACnC,SAAU,EACV,EACD,CACC,IAAK,WACL,MAAO,EAAE,OAAQ,UAAU,EAC3B,QAAS,MACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,KAAMtxF,GACN,SAAU,UACV,SAAU,CACT,CACC,IAAK,cACL,MAAO,EAAE,OAAQ,WAAW,EAC5B,QAAS,IACT,aAAc,CAACsxF,GAAU,IAAKA,GAAU,KAAK,EAC7C,KAAMpxF,GACN,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,MAAO,EAAK,EACvD,OAAS/mC,GACDA,EAAQ,cAAc,CAAE,MAAO,CAAC,CAAE,CAE1C,EACD,CACC,IAAK,cACL,MAAO,EAAE,OAAQ,WAAW,EAC5B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,KAAMlxF,GACN,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,MAAO,EAAK,EACvD,OAASjnC,GACDA,EAAQ,cAAc,CAAE,MAAO,CAAC,CAAE,CAE1C,EACD,CACC,IAAK,cACL,MAAO,EAAE,OAAQ,WAAW,EAC5B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,KAAMhxF,GACN,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,MAAO,EAAK,EACvD,OAASnnC,GACDA,EAAQ,cAAc,CAAE,MAAO,CAAC,CAAE,CAE1C,EACD,CACC,IAAK,cACL,MAAO,EAAE,OAAQ,WAAW,EAC5B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,MAAO,EAAK,EACvD,KAAM9wF,GACN,OAASrnC,GACDA,EAAQ,cAAc,CAAE,MAAO,CAAC,CAAE,CAE1C,EACD,CACC,IAAK,cACL,MAAO,EAAE,OAAQ,WAAW,EAC5B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,MAAO,EAAK,EACvD,KAAM5wF,GACN,OAASvnC,GACDA,EAAQ,cAAc,CAAE,MAAO,CAAC,CAAE,CAE1C,EACD,CACC,IAAK,cACL,MAAO,EAAE,OAAQ,WAAW,EAC5B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,MAAO,EAAK,EACvD,KAAM1wF,GACN,OAASznC,GACDA,EAAQ,cAAc,CAAE,MAAO,CAAC,CAAE,CAE1C,EACD,CACC,IAAK,qBACL,YAAa,GACb,QAAS,CAAC,CAAE,cAAAm6H,KACJA,EAAc,MAEtB,EACD,CACC,IAAK,UACL,KAAMlyF,GACN,MAAO,CAAC,CAAE,gBAAAiyF,KAAsBA,EAAgB,OAAQ,EACxD,QAAS,CAAC,CAAE,cAAAC,KACJA,EAAc,OAEtB,MAAO,CAAC,CAAE,cAAAA,KACFA,EAAc,QAClB,EAAE,OAAQ,cAAc,EACxB,EAAE,OAAQ,cAAc,CAE5B,CACD,EACD,SAAU,CACV,EACD,CACC,IAAK,OACL,MAAO,EAAE,OAAQ,MAAM,EACvB,QAAS,IACT,aAAc,CAAChC,GAAU,GAAG,EAC5B,KAAMxxF,GACN,SAAU,SACV,OAAS3mC,GACDA,EAAQ,WAAY,EAE5B,SAAU,CACV,EACD,CACC,IAAK,SACL,MAAO,EAAE,OAAQ,QAAQ,EACzB,QAAS,IACT,aAAc,CAACm4H,GAAU,GAAG,EAC5B,KAAMpwF,GACN,SAAU,KACV,OAAS/nC,GACDA,EAAQ,aAAc,EAE9B,SAAU,CACV,EACD,CACC,IAAK,YACL,MAAO,EAAE,OAAQ,WAAW,EAC5B,QAAS,IACT,aAAc,CAACm4H,GAAU,GAAG,EAC5B,KAAMxvF,GACN,SAAU,YACV,OAAS3oC,GACDA,EAAQ,gBAAiB,EAEjC,SAAU,EACV,EACD,CACC,IAAK,gBACL,MAAO,EAAE,OAAQ,eAAe,EAChC,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,KAAM1vF,GACN,SAAU,SACV,OAASzoC,GACDA,EAAQ,aAAc,EAE9B,SAAU,EACV,EACD,CACC,IAAK,QACL,MAAO,EAAE,OAAQ,OAAO,EACxB,QAAS,MACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,CAAC,aAAc,cAAe,UAAU,EAClD,KAAMlwF,GACN,SAAU,CACT,CACC,IAAK,iBACL,MAAO,EAAE,OAAQ,gBAAgB,EACjC,QAAS,IACT,aAAc,CAACkwF,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,aACV,KAAMlwF,GACN,OAASjoC,GACDA,EAAQ,iBAAkB,CAElC,EACD,CACC,IAAK,eACL,MAAO,EAAE,OAAQ,cAAc,EAC/B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,cACV,KAAM9vF,GACN,OAASroC,GACDA,EAAQ,kBAAmB,CAEnC,EACD,CACC,IAAK,YACL,MAAO,EAAE,OAAQ,YAAY,EAC7B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,WACV,KAAMhwF,GACN,OAASnoC,GAAYA,EAAQ,eAAgB,CAC7C,EACD,CACC,IAAK,kBACL,YAAa,EACb,EACD,CACC,IAAK,uBACL,MAAO,EAAE,OAAQ,sBAAsB,EACvC,QAAS,MACT,KAAM6nC,GACN,OAAQ,CAAC7nC,EAASD,EAAS,OACtBA,GAAUA,EAAO,SAAS,UAAU,EAChCC,EAAQ,aAAa,UAAU,EAEhCA,EAAQ,aAAa,UAAU,CAEvC,EACD,CACC,IAAK,uBACL,MAAO,EAAE,OAAQ,sBAAsB,EACvC,QAAS,MACT,aAAc,CAACm4H,GAAU,KAAK,EAC9B,KAAMxwF,GACN,OAAQ,CAAC3nC,EAASD,EAAS,OACtBA,GAAUA,EAAO,SAAS,UAAU,EAChCC,EAAQ,aAAa,UAAU,EAEhCA,EAAQ,aAAa,UAAU,CAEvC,CACD,EACD,SAAU,CACV,EACD,CACC,IAAK,SACL,MAAO,EAAE,OAAQ,QAAQ,EACzB,QAAS,GACT,KAAM2lC,GACN,SAAU,CAAC,aAAc,YAAa,SAAS,EAC/C,SAAU,CACT,CACC,IAAK,aACL,MAAO,EAAE,OAAQ,YAAY,EAC7B,QAAS,IACT,aAAc,CAACwyF,GAAU,IAAKA,GAAU,KAAK,EAC7C,SAAU,aACV,KAAM5vF,GACN,OAASvoC,GACDA,EAAQ,iBAAkB,CAElC,EACD,CACC,IAAK,aACL,MAAO,EAAE,OAAQ,YAAY,EAC7B,QAAS,IACT,aAAc,CAACm4H,GAAU,IAAKA,GAAU,GAAG,EAC3C,SAAU,YACV,KAAMtyF,GACN,OAAS7lC,GACDA,EAAQ,gBAAiB,CAEjC,EACD,CACC,IAAK,mBACL,YAAa,EACb,EACD,CACC,IAAK,eACL,MAAO,EAAE,OAAQ,cAAc,EAC/B,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,KAAM,OAAU,EAC3D,KAAMipC,GACN,OAASjpC,GACDA,EAAQ,cAAc,CAAE,KAAM,MAAM,CAAE,CAE9C,EACD,CACC,IAAK,kBACL,MAAO,EAAE,OAAQ,iBAAiB,EAClC,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,KAAM,UAAa,EAC9D,KAAMypC,GACN,OAASzpC,GACDA,EAAQ,cAAc,CAAE,KAAM,SAAS,CAAE,CAEjD,EACD,CACC,IAAK,eACL,MAAO,EAAE,OAAQ,iBAAiB,EAClC,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,KAAM,OAAU,EAC3D,KAAMmrC,GACN,OAASnrC,GACDA,EAAQ,cAAc,CAAE,KAAM,MAAM,CAAE,CAE9C,EACD,CACC,IAAK,gBACL,MAAO,EAAE,OAAQ,gBAAgB,EACjC,SAAU,CAAE,KAAM,UAAW,WAAY,CAAE,KAAM,QAAW,EAC5D,KAAM+lC,GACN,OAAS/lC,GACDA,EAAQ,cAAc,CAAE,KAAM,OAAO,CAAE,CAE/C,CACD,EACD,SAAU,CACV,EACD,CACC,IAAK,QACL,MAAO,EAAE,OAAQ,OAAO,EACxB,SAAU,QACV,KAAM+pC,GACN,OAAS/pC,GACDA,EAAQ,YAAa,EAE7B,SAAU,EACV,EACD,CACC,IAAK,UACL,MAAO,EAAE,OAAQ,SAAS,EAC1B,SAAU,UACV,KAAM+qC,GACN,OAAS/qC,GACDA,EAAQ,cAAe,EAE/B,SAAU,EACV,EACD,CACC,IAAK,cACL,MAAO,EAAE,OAAQ,aAAa,EAC9B,SAAU,OACV,KAAMmpC,GACN,UAAWkxF,IACX,SAAU,CACV,EACD,CACC,IAAK,oBACL,MAAO,EAAE,OAAQ,mBAAmB,EACpC,KAAM9wF,GACN,UAAW+wF,IACX,SAAU,CACV,EACD,CACC,IAAK,eACL,MAAO,EAAE,OAAQ,cAAc,EAC/B,KAAM/zF,GACN,UAAWg0F,IACX,OAAQ,CAACv6H,EAASgpE,EAAc,KACxBhpE,EAAQ,MAAMgpE,CAAW,EAEjC,SAAU,CACV,CACF,EC3YMwxD,IAAqB,EAAE,OAAQ,YAAY,EAC3CC,IAAqB,EAAE,OAAQ,cAAc,EAE7CC,IAAahuJ,GACX,CAAC,OAAQ,OAAQ,UAAW,cAAc,EAAE,QAAQA,EAAE,GAAG,EAAI,GAG/DiuJ,GAAY,CAAC,YAAa,OAAO,EAEjCC,IAAqBhjK,GAED,CACxB,cACA,UACA,eACA,eACA,iBACA,aACA,UACA,OACA,EAEuB,KAAKijK,GAAWA,EAAQ,KAAKjjK,CAAO,CAAC,EAGxDkjK,IAAmBljK,GAAY,CACpC,GAAI,CACH,OAAAi9H,GAAW,MAAMj9H,CAAO,EACjB,EACP,MAAW,CACX,MAAO,EACP,CACF,EAEMmjK,IAAc72F,GAAQ,CAC3B,GAAI,CACH,MAAO,CAAQ,KAAI,IAAIA,CAAG,CAC1B,MAAW,CACX,MAAO,EACP,CACF,EAEM82F,IAAsB17H,GACpB,CACN,GAAGA,EAAK,OAAO5yB,GAAKiuJ,GAAU,QAAQjuJ,EAAE,GAAG,EAAI,EAAE,EACjD,GAAG4yB,EAAK,OAAO5yB,GAAKiuJ,GAAU,QAAQjuJ,EAAE,GAAG,IAAM,EAAE,CACnD,EAGIuuJ,IAAyB1jE,GACvByjE,IACN,CACC,GAAGE,GAAY,KAAKxuJ,GAAKA,EAAE,MAAQ,UAAU,EAAE,SAC/C,GAAGwuJ,GAAY,KAAKxuJ,GAAKA,EAAE,MAAQ,OAAO,EAAE,SAC5C,GAAGwuJ,GAAY,OAAOxuJ,GAAKA,EAAE,QAAU,CAACguJ,IAAUhuJ,CAAC,CAAC,EACpD,GAAGwuJ,GAAY,KAAKxuJ,GAAKA,EAAE,MAAQ,QAAQ,EAAE,SAC7C,CACC,GAAGwuJ,GAAY,KAAKxuJ,GAAKA,EAAE,MAAQ,cAAc,EACjD,OAASszB,GAAYA,EAAQ,cAAc,GAAG,CAC9C,CACJ,EAAI,OAAOtzB,GAAK,kBAAAvV,GAAAD,GAAAR,EAAAgW,GAAA,YAAAA,EAAG,QAAH,YAAAhW,EAAU,cAAV,YAAAQ,EAAA,KAAAR,KAAA,YAAAS,EAA2B,SAASogG,EAAM,YAAW,GAAG,EACpE,IAAI7qF,IAAM,CAAE,GAAGA,EAAG,aAAc8tJ,GAAkB,EAAG,CACvD,EAGaW,IAAA,IAAM5I,GAAkB,CACtC,cAAe6I,IACf,QAAS,CAAC,CAAE,OAAAr7H,EAAQ,MAAAlxB,EAAO,MAAAra,CAAK,IAAO,CACtC,GAAIA,EAAM,OAAQ,CACjB,MAAM6mK,EAAet7H,EAAO,MAAK,EAAG,YAAYlxB,CAAK,EACrDra,EAAM,OAAO6mK,CAAY,EACzBA,EAAa,IAAK,EAClB,MACA,CACDrB,GAAkBxlK,EAAM,WAAY,EAAI,EACtC,KAAKurH,GAAQ,CAEb,GAAI,CADUg7C,IAAWh7C,CAAI,EACjB,CAGX,MAAMnoH,EAFagjK,IAAkB76C,CAAI,GAAK+6C,IAAgB/6C,CAAI,EAErC8U,GAAW,OAAO9U,CAAI,EAAIA,EACvDhgF,EACE,MAAO,EACP,MAAO,EACP,gBAAgBlxB,EAAOjX,EAAU,GAAG,EACpC,IAAK,EACP,MACA,CAEDmoC,EACE,MAAO,EACP,MAAO,EACP,YAAYlxB,CAAK,EACjB,cAAckxG,CAAI,EAClB,IAAK,CACX,CAAI,EACA,MAAMrzE,GAAS,CACf,QAAQ,MAAM,gCAAiCA,CAAK,CACxD,CAAI,CACF,EACD,MAAO,CAAC,CAAE,OAAA3M,EAAQ,MAAAw3D,KACV,CACN,GAAG+jE,GAAe/jE,CAAK,EACrB,IAAI98F,IACG,CACN,aAAcggK,IACd,MAAOhgK,EAAE,MACT,KAAMA,EAAE,SACR,WAAYA,EAAE,EACd,EACD,EAAE,OAAOiS,GAAKA,2CAAG,QAAHA,cAAU,cAAVA,sCAA2B,SAAS6qF,EAAM,YAAW,GAAG,EACxE,GAAG0jE,IAAsB1jE,CAAK,EAC5B,OAAO,CAAC,CAAE,OAAAzlC,EAAQ,SAAAjgB,KAAe,CACjC,MAAM0pH,EAAczpG,EAAO/xB,iBAAQ,KAAK,EAClCy7H,EAAgB3pH,GAAYinH,GAAY,CAAE,SAAAjnH,CAAQ,EAAI9R,CAAM,EAClE,OAAOw7H,GAAe,CAACC,CAC5B,CAAK,CACF,CAEH,CAAC,ECzHYC,IAAsB,IAAI1iJ,GAAU,YAAY,EAC9C2iJ,IAAAxyH,GAAU,OAAO,CAE/B,KAAM,aAEN,YAAa,CACZ,MAAO,CACN,WAAY,CACX,KAAM,IACN,gBAAiB,CAAC,GAAG,EACrB,UAAWuyH,IACX,MAAO,CAAC,CAAE,MAAA54J,EAAO,MAAAgM,KACFhM,EAAM,IAAI,QAAQgM,EAAM,IAAI,EAC7B,OAAO,KAAK,OAAS,YAEnC,GAAGssJ,IAAa,CAChB,CACD,CACD,EAED,uBAAwB,CACvB,MAAO,CACNtzD,GAAW,CACV,OAAQ,KAAK,OACb,GAAG,KAAK,QAAQ,UACpB,CAAI,CACD,CACD,CACF,CAAC,EC9BK8zD,GAAU,SAAS/kK,EAAMglK,EAAc,OAC5C,MAAM9jE,EAAMlhG,EAAK,MAAM,KAkBvB,GAjBI,CAACkhG,GAGD,GAACphG,EAAA,OAAO,MAAP,MAAAA,EAAY,SAGbohG,EAAI,MAAM,aAAa,GAGvBA,EAAI,WAAW,GAAG,GAIlB6hE,GAAU,OAAQ,aAAc,EAAE,IAAM,eAIxC7hE,EAAI,SAAS,oBAAoB,EACpC,OAAOA,EAIR,MAAMp4F,EAAQo4F,EAAI,MAAM,wBAAwB,EAChD,GAAIp4F,EAAO,CACV,KAAM,GAAK2M,CAAE,EAAI3M,EACjB,OAAQ,IAAI,IAAIq6J,GAAY,MAAM1tJ,SAAI,EAAG,OAAO,MAAM,EAAG,IACzD,CACD,OAAOyrF,CACR,EAEM+jE,GAAY,SAASv2J,EAAK,CAC/B,MAAMwyF,EAAMxyF,EAAI,aAAa,MAAM,EACnC,GAAI,CAACwyF,EACJ,OAAOA,EAER,MAAMp4F,EAAQo4F,EAAI,MAAM,gDAAgD,EACxE,GAAIp4F,EAAO,CACV,KAAM,GAAK2M,CAAE,EAAI3M,EACjB,OAAQ,IAAI,IAAIq6J,GAAY,MAAM1tJ,SAAI,EAAG,OAAO,MAAM,EAAG,IACzD,CACD,OAAOyrF,CACR,EAEMgkE,GAAuB,SAAS9+C,EAAM,CAC3C,MAAM++C,EAAiB,OAAO,SAAS,OAAS,OAAO,SAAS,SAAW,OAAO,SAAS,OAC3F,OAAO/+C,iBAAM,WAAW,QAAQA,iBAAM,WAAW++C,EAAiB,KACnE,ECpCAz5F,IAAA,CACA,kBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,2pBC+DA05F,IAAA,mBAEA15F,IAAA,CACA,sBAEA,YACA,UAAA25F,GACA,UAAAC,GACA,gBAAAC,GACA,SAAA5wF,GACA,cAAAqzE,GACA,gBAAA96E,GACA,YAAAs4F,GACA,YAAAC,GACA,WAAAC,GACA,EAEA,QACAve,EACA,EAEA,OACA,QACA,YACA,WACA,EACA,MACA,YACA,YACA,CACA,EAEA,OACA,OACA,cACA,QACA,aACA,mBACA,CACA,EAEA,UACA,MACA,2BACA,EAEA,kBACA,mBACA,iBACA,GAEAxmJ,GAAA,qDAEAA,GAAA,gCACA,EAKA,gBAEA,OADA,mCACA,IACA,EAEA,QACA,iEACA,EAEA,cACA,MAAA2sE,EAAA,mCACA,kBAAA83F,IAAA,SAAA93F,EAAA,SACA,CACA,EAEA,OACA,MACA,kBACA,CACA,EAEA,cACA,uCACA,iCAAAnkC,CAAA,KACA,gBAAAA,EAAA,UACA,EACA,EAEA,SACA,EAAAxoC,GAEA,cACA,aACA,kBACA,wBACA,EAEA,iBACA,qCACA,EAEA,kCACA,qBAAAJ,GAAAD,GAAAR,EAAA,sDAAAA,EAAA,8BAAAQ,EAAA,YAAAC,EAAA,IACA,EAEA,YACA,aACA,sBACA,EAEA,WACA,aACA,iBACA,EAEA,aACA,0BACA,8BAEA,eACA,EAEA,WAAA6lH,EAAA,CAEA,MAAAjmG,EAAA,sCACA,QAAAnM,CAAA,EAAAmM,EACAvd,EAAA,YAAAoR,EAAA,IAAAiE,KAAA,YACApV,EAAA,YAAAmR,EAAA,IAAAiE,KAAA,UAEA,0BAAAkI,CAAA,EACA,oBACA,wBACA,cAAAimG,EAAA,EACA,uBAAAxjH,EAAA,GAAAC,EAAA,EACA,QACA,KACA,EAEA,aACA,oBAEA,iBACA,YACA,QACA,MACA,eACA,CACA,CACA,6uEC5OA,MAAM8iK,GAAqB,CAK1B,YAAY,CAAE,KAAAlgJ,EAAM,QAAAlY,EAAS,OAAA0T,CAAM,EAAI,CAHvC2kJ,WAAa,MACbC,WAAU,MAmCVjnK,GAAA,6BAAyB8kB,GAAU,UAE9BpjB,GAAAR,EAAA,KAAK,QAAL,YAAAA,EAAY,SAAZ,MAAAQ,EAAoB,SAASojB,EAAM,SAKnC,OAAO,SAAWA,EAAM,OAAS,UAIrCoiJ,GAAA,KAAKD,IAAQ,SAAS,eAAgB,CACtC,GA5CA,KAAK,QAAUt4J,EACf,KAAK,KAAOkY,EACZ,KAAK,OAASxE,EACd8kJ,GAAA,KAAKF,GAAU,KAAK,QAAQ,OAC5B,CAED,mBAAoB,CACnB,KAAK,KAAK,IAAI,iBAAiB,YAC9B,KAAK,qBACL,EACD,SAAS,iBAAiB,YACzB,KAAK,qBACL,EACD,SAAS,iBAAiB,SACzB,KAAK,sBACL,CAAE,QAAS,EAAM,CACjB,CACD,CAED,sBAAuB,CACtB,KAAK,KAAK,IAAI,oBAAoB,YACjC,KAAK,qBACL,EACD,SAAS,oBAAoB,YAC5B,KAAK,qBACL,EACD,SAAS,oBAAoB,SAC5B,KAAK,sBACL,CAAE,QAAS,EAAM,CACjB,CACD,CAgBD,eAAgB,CACf,MAAMthG,EAAgB,KAAK,QAAQ,OAAO,QAAQ,QAC5CC,EAAmB,CAAC,CAACD,EAAc,cAErC,KAAK,OAAS,CAACC,IAInBshG,GAAA,KAAKF,KAALG,GAAA,KAAKH,GAAe,IAAIj7F,GAAYq7F,IAAgB,CACnD,OAAQ,KAAK,QAAQ,OACrB,UAAW,CACV,OAAQ,KAAK,QAAQ,OACrB,KAAM,IACN,CACJ,CAAG,GAED,KAAK,MAAQniG,GAAMU,EAAe,CACjC,SAAU,IACV,uBAAwB,KACxB,QAASuhG,GAAA,KAAKF,IAAW,QACzB,YAAa,GACb,QAAS,SACT,UAAW,SACX,YAAa,SACb,cAAe,CACd,SAAU,OACV,CACJ,CAAG,EACD,CAED,OAAOngJ,EAAMjE,EAAU,CACtB,KAAM,CAAE,OAAAhX,CAAM,EAAK,KAAK,OAAO,SAASib,EAAK,KAAK,EAC9CA,EAAK,YAGT,KAAK,cAAe,EAChBjb,WAAQ,KACX,WAAW,IAAM,CAChB,KAAK,cAAcib,EAAMjb,CAAM,CAC/B,EAAE,GAAG,GAEN,KAAK,qBAAsB,EAC3B,WAAW,IAAM,QAChB1K,EAAA,KAAK,QAAL,MAAAA,EAAY,MACZ,EAAE,GAAG,GAEP,CAED,cAAc2lB,EAAM,CAAE,KAAA1gB,EAAM,UAAAjC,CAAS,EAAI,WACxC,IAAImjK,EAAcxgJ,EAAK,QAAQ3iB,CAAS,EACpC,OAAO,UAAU,SAAS,KAAKmjK,CAAW,IAAM,kBACnDA,EAAcA,EAAY,eAE3B,MAAM7gJ,EAAa6gJ,iBAAa,yBAEhCnmK,EAAAgmK,GAAA,KAAKF,MAAL,MAAA9lK,EAAiB,YAAY,CAC5B,KAAMilK,GAAQhgK,CAAI,CACrB,IAEEzE,EAAA,KAAK,QAAL,MAAAA,EAAY,SAAS,CACpB,uBAAwB,IAAM8kB,CACjC,IAEE7kB,EAAA,KAAK,QAAL,MAAAA,EAAY,OACZ,KAAK,kBAAmB,CACxB,CAED,SAAU,QACTT,EAAA,KAAK,QAAL,MAAAA,EAAY,SACZ,CAEF,CAzHC8lK,eACAC,eCCM,SAASK,IAAwB,CAAE,UAAA/lJ,EAAW,IAAAnY,GAAO,CAE3D,KAAM,CAAE,OAAAgM,CAAM,EAAKmM,EACbvd,EAAO,KAAK,IAAI,GAAGoR,EAAO,IAAIiE,GAASA,EAAM,MAAM,GAAG,CAAC,EACvDpV,EAAK,KAAK,IAAI,GAAGmR,EAAO,IAAIiE,GAASA,EAAM,IAAI,GAAG,CAAC,EAEnDkuJ,EAAWn+J,EAAI,QAAQpF,CAAI,EAGjC,GAAIujK,EAAS,OAAO,KAAK,OAAS,UACjC,MAAO,GAGR,MAAMnmK,EAAOmmK,EAAS,OAAO,WAAWA,EAAS,OAAO,EAClDrjK,EAAYqjK,EAAS,IAAMA,EAAS,WACpCC,EAAUtjK,GAAY9C,iBAAM,UAClC,GAAI6C,EAAKujK,EAER,OAAO,KAER,MAAM57J,EAAS67J,GAAWrmK,EAAM8C,CAAS,EACzC,GAAI0H,EACH,OAAOA,EAER,MAAM0F,EAAai2J,EAAS,WAC5B,OAAIj2J,EACIm2J,GAAWn2J,EAAYpN,EAAYoN,EAAW,QAAQ,EAEvD,IACR,CAOA,SAASm2J,GAAWrmK,EAAM8C,EAAW,CACpC,MAAMiC,EAAOuhK,IAAStmK,CAAI,EAC1B,OAAO+E,EAAO,CAAE,KAAAA,EAAM,UAAAjC,CAAW,EAAG,IACrC,CAMA,SAASwjK,IAAStmK,EAAM,CACvB,MAAMsmK,EAAWtmK,iBAAM,MAAM,KAAKkJ,GAAKA,EAAE,KAAK,OAAS,QACvD,GAAKo9J,GAID,CAAApB,GAAqBoB,EAAS,MAAM,IAAI,EAG3C,OAAOA,CAET,CCtDO,MAAMC,IAAiBJ,GAAa,CAACl6J,EAAO+4B,IAAa,CAC/D,MAAMjgC,EAAOohK,EAAS,MAAO,EAC3B,KAAKj9J,GAAKA,EAAE,KAAK,OAAS,MAAM,EAClC,GAAI,CAACnE,EACJ,MAAO,GAER,MAAMjC,EAAYqjK,EAAS,IAAMA,EAAS,WACpC37J,EAAS,CAAE,KAAAzF,EAAM,UAAAjC,CAAW,EAClC,OAAIkiC,GACHA,EAAS/4B,EAAM,GAAG,QAAQu6J,GAAe,CAAE,OAAAh8J,CAAM,CAAE,CAAC,EAE9C,EACR,EAKai8J,GAAiB,CAACx6J,EAAO+4B,WACjBwhI,YAAc,SAASv6J,CAAK,IAA5Bu6J,QACF,QAGdxhI,GACHA,EAAS/4B,EAAM,GAAG,QAAQu6J,GAAe,CAAE,OAAQ,IAAI,CAAE,CAAC,EAEpD,IALC,IAQIA,GAAgB,IAAIrkJ,GAAU,YAAY,EAKhD,SAASukJ,IAAWn5J,EAAS,CACnC,MAAMo5J,EAAmB,IAAI3kJ,GAAO,CACnC,IAAKwkJ,GACL,MAAO,CACN,KAAM,KAAO,CAAE,OAAQ,OACvB,MAAO,CAACxvJ,EAAI9S,IAAQ,CACnB,MAAMkgC,EAAOptB,EAAG,QAAQwvJ,EAAa,EACrC,OAAIpiI,EACI,CAAE,GAAGlgC,EAAK,OAAQkgC,EAAK,MAAQ,EAE/BlgC,CAER,CACD,EAED,KAAOuhB,GAAS,IAAIkgJ,IAAqB,CACxC,KAAAlgJ,EACA,QAAAlY,EACA,OAAQo5J,CACX,CAAG,EAED,kBAAmB,CAAC52H,EAAcvuB,EAAUvV,IAAU,CAErD,IAAIuV,iBAAU,IAAI,QAAQ,QAAS,EAClC,OAID,MAAMolJ,EAAgBplJ,iBAAU,UAAU,GAAGvV,EAAM,WAC7C46J,EAAUrlJ,iBAAU,IAAI,GAAGvV,EAAM,KAEjC66J,EAAY/2H,EAAa,MAAM/4B,GAAMA,EAAG,KAAK,eAAiB,EAAK,EACzE,GAAI4vJ,IAAkBE,GAAaD,GAClC,OAED,MAAMr8J,EAAS07J,IAAwBj6J,CAAK,EAC5C,OAAOA,EAAM,GAAG,QAAQu6J,GAAe,CAAE,OAAAh8J,CAAM,CAAE,CACjD,EAED,MAAO,CAIN,cAAe,CAACib,EAAM3jB,EAAKilK,EAAOC,EAAUtjJ,EAAOkhB,IAAW,CAE7D,GAAI,CAACA,GACDlhB,EAAM,SAAW,GACjBA,EAAM,SACNA,EAAM,QACT,MAAO,GAER,KAAM,CAAE,MAAAzX,EAAO,SAAA+4B,CAAQ,EAAKvf,EACtB0gJ,EAAWl6J,EAAM,IAAI,QAAQnK,CAAG,EACtC,OAAOykK,IAAcJ,CAAQ,EAAEl6J,EAAO+4B,CAAQ,CAC9C,EAED,gBAAiB,CAEhB,QAAS,CAACvf,EAAM/B,IAAU,CACzB,KAAM,CAAE,MAAAzX,EAAO,SAAA+4B,CAAQ,EAAKvf,EAC5B,GAAI/B,EAAM,MAAQ,SACjB,OAAO+iJ,GAAex6J,EAAO+4B,CAAQ,CAEtC,CACD,CAED,CAEH,CAAE,EACD,OAAO2hI,CACR,CAEO,MAAMM,IAAkB,IAAI9kJ,GAAU,qBAAqB,EAS3D,SAAS+kJ,KAAe,CAC9B,OAAO,IAAIllJ,GAAO,CACjB,IAAKilJ,IACL,MAAO,CACN,gBAAiB,CAEhB,SAAU,CAACxhJ,EAAM/B,IAAU,CAC1B,GAAIA,EAAM,OAAO,QAAQ,GAAG,GAAKA,EAAM,SAAW,GAAK,CAACA,EAAM,SAAW,CAACA,EAAM,SAAW,CAACA,EAAM,SAAU,CAC3GA,EAAM,eAAgB,EACtBA,EAAM,yBAA0B,EAEhC,MAAMyjJ,EAAczjJ,EAAM,OAAO,QAAQ,GAAG,EAC5C,OAAO,KAAKyjJ,EAAY,KAAM,QAAQ,CACtC,CACD,EAID,MAAO,CAAC1hJ,EAAM/B,IAAU,CACnBA,EAAM,OAAO,QAAQ,GAAG,IAC3BA,EAAM,gBAAiB,EACvBA,EAAM,eAAgB,EACtBA,EAAM,yBAA0B,EAEjC,EAGD,MAAO,CAAC+B,EAAM/B,IAAU,OACvB,MAAM0jJ,EAAS1jJ,EAAM,OAAO,QAAQ,GAAG,EACnCA,EAAM,SAAW,GAAK0jJ,IACzB1jJ,EAAM,eAAgB,EAClBwhJ,IAAqBkC,IAAO,WAAW,OAAlBA,cAAwB,KAAK,EAErD,SAAS,KAAOA,EAAO,WAAW,KAAK,OAC7B1jJ,EAAM,SAAWA,EAAM,UACjC,OAAO,KAAK0jJ,EAAO,KAAM,QAAQ,EAGnC,CACD,CACD,CACH,CAAE,CACF,CCpKA,MAAMC,IAAa/0H,GAAU,OAAO,CACnC,KAAM,iBAEN,aAAc,CACb,MAAO,CACN,eAAgB,IAAM,CAAC,CAAE,MAAArmC,EAAO,SAAA+4B,CAAQ,IAChCyhI,GAAex6J,EAAO+4B,CAAQ,CAEtC,CACD,EAED,uBAAwB,CACvB,MAAO,CACN0hI,IAAW,CACV,OAAQ,KAAK,OACb,OAAQ,KAAK,OAAO,gBACxB,CAAI,CACD,CACD,CACF,CAAC,ECnBKY,IAAmB,IAAInlJ,GAAU,SAAS,EAK1ColJ,IAAU9+J,GAAK,OAAO,CACxB,KAAM,UACN,YAAa,CACT,MAAO,CACH,eAAgB,CAAE,EAClB,WAAW,CAAE,QAAA8E,EAAS,KAAAvN,GAAQ,CAC1B,IAAIF,EACJ,MAAO,GAAGyN,SAAQ,WAAW,MAAQzN,UAAKE,EAAK,MAAM,SAAW,MAAQF,IAAO,OAASA,EAAKE,EAAK,MAAM,GAC3G,EACD,2BAA4B,GAC5B,WAAW,CAAE,QAAAuN,EAAS,KAAAvN,GAAQ,CAC1B,IAAIF,EACJ,MAAO,CACH,OACAorC,GAAgB,KAAK,eAAgB39B,EAAQ,cAAc,EAC3D,GAAGA,SAAQ,WAAW,MAAQzN,UAAKE,EAAK,MAAM,SAAW,MAAQF,IAAO,OAASA,EAAKE,EAAK,MAAM,GACrH,CACa,EACD,WAAY,CACR,KAAM,IACN,UAAWsnK,IACX,QAAS,CAAC,CAAE,OAAAn+H,EAAQ,MAAAlxB,EAAO,MAAAra,CAAK,IAAO,CACnC,IAAIkC,EAAIQ,EAAIC,EAGZ,MAAMy9C,EAAY7U,EAAO,KAAK,MAAM,UAAU,IAAI,UAC3BrpC,KAA2Dk+C,iBAAU,QAAU,MAAQl+C,IAAO,SAAkBA,EAAG,WAAW,GAAG,IAEpJmY,EAAM,IAAM,GAEhBkxB,EACK,MAAO,EACP,MAAO,EACP,gBAAgBlxB,EAAO,CACxB,CACI,KAAM,KAAK,KACX,MAAOra,CACV,EACD,CACI,KAAM,OACN,KAAM,GACT,CACzB,CAAqB,EACI,OAEJ2C,GAAMD,EAAK6oC,EAAO,KAAK,IAAI,cAAc,eAAiB,MAAQ7oC,IAAO,OAAS,OAASA,EAAG,aAAc,KAAM,MAAQC,IAAO,QAAkBA,EAAG,cAAa,CACvK,EACD,MAAO,CAAC,CAAE,MAAA0L,EAAO,MAAAgM,KAAY,CACzB,MAAMnS,EAAQmG,EAAM,IAAI,QAAQgM,EAAM,IAAI,EACpC5X,EAAO4L,EAAM,OAAO,MAAM,KAAK,IAAI,EAEzC,MADc,CAAC,CAACnG,EAAM,OAAO,KAAK,aAAa,UAAUzF,CAAI,CAEhE,CACJ,CACb,CACK,EACD,MAAO,SACP,OAAQ,GACR,WAAY,GACZ,KAAM,GACN,eAAgB,CACZ,MAAO,CACH,GAAI,CACA,QAAS,KACT,UAAWooB,GAAWA,EAAQ,aAAa,SAAS,EACpD,WAAYqiB,GACHA,EAAW,GAGT,CACH,UAAWA,EAAW,EAC9C,EAJ+B,EAMlB,EACD,MAAO,CACH,QAAS,KACT,UAAWriB,GAAWA,EAAQ,aAAa,YAAY,EACvD,WAAYqiB,GACHA,EAAW,MAGT,CACH,aAAcA,EAAW,KACjD,EAJ+B,EAMlB,CACb,CACK,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,mBAAmB,YAAK,KAAI,KACpC,CACb,CACK,EACD,WAAW,CAAE,KAAA9qC,EAAM,eAAA6xC,GAAkB,CACjC,GAAI,KAAK,QAAQ,cAAgB,OAC7B,eAAQ,KAAK,iEAAiE,EACvE,CACH,OACA3G,GAAgB,CAAE,YAAa,KAAK,IAAM,EAAE,KAAK,QAAQ,eAAgB2G,CAAc,EACvF,KAAK,QAAQ,YAAY,CACrB,QAAS,KAAK,QACd,KAAA7xC,CACpB,CAAiB,CACjB,EAEQ,MAAMwnK,EAAgB,CAAE,GAAG,KAAK,OAAO,EACvCA,EAAc,eAAiBt8H,GAAgB,CAAE,YAAa,KAAK,IAAM,EAAE,KAAK,QAAQ,eAAgB2G,CAAc,EACtH,MAAM/c,EAAO,KAAK,QAAQ,WAAW,CACjC,QAAS0yI,EACT,KAAAxnK,CACZ,CAAS,EACD,OAAI,OAAO80B,GAAS,SACT,CACH,OACAoW,GAAgB,CAAE,YAAa,KAAK,IAAM,EAAE,KAAK,QAAQ,eAAgB2G,CAAc,EACvF/c,CAChB,EAEeA,CACV,EACD,WAAW,CAAE,KAAA90B,GAAQ,CACjB,OAAI,KAAK,QAAQ,cAAgB,QAC7B,QAAQ,KAAK,iEAAiE,EACvE,KAAK,QAAQ,YAAY,CAC5B,QAAS,KAAK,QACd,KAAAA,CAChB,CAAa,GAEE,KAAK,QAAQ,WAAW,CAC3B,QAAS,KAAK,QACd,KAAAA,CACZ,CAAS,CACJ,EACD,sBAAuB,CACnB,MAAO,CACH,UAAW,IAAM,KAAK,OAAO,SAAS,QAAQ,CAAC,CAAE,GAAAgX,EAAI,MAAA/K,KAAY,CAC7D,IAAIw7J,EAAY,GAChB,KAAM,CAAE,UAAAtnJ,CAAW,EAAGlU,EAChB,CAAE,MAAA8nB,EAAO,OAAA5U,CAAQ,EAAGgB,EAC1B,OAAK4T,GAGL9nB,EAAM,IAAI,aAAakT,EAAS,EAAGA,EAAQ,CAACnf,EAAM8B,IAAQ,CACtD,GAAI9B,EAAK,KAAK,OAAS,KAAK,KACxB,OAAAynK,EAAY,GACZzwJ,EAAG,WAAW,KAAK,QAAQ,2BAA6B,GAAK,KAAK,QAAQ,WAAW,MAAQ,GAAIlV,EAAKA,EAAM9B,EAAK,QAAQ,EAClH,EAE/B,CAAiB,EACMynK,GATI,EAU3B,CAAa,CACb,CACK,EACD,uBAAwB,CACpB,MAAO,CACHx2D,GAAW,CACP,OAAQ,KAAK,OACb,GAAG,KAAK,QAAQ,UAChC,CAAa,CACb,CACK,CACL,CAAC,EC3JDvlC,IAAA,CACA,eACA,YACA,aAAA8B,GACA,gBAAA9C,EACA,EACA,OACA,kBACA,cACA,WACA,EAEA,MACA,YACA,WACA,CACA,EACA,OACA,OACA,8BACA,CACA,EACA,UACA,sBACA,8BAAAiC,KAAA,IAAAA,cAAA,IACA,CACA,CACA,0XCtCe+6F,QAAc,OAAO,CACnC,WAAY,CACX,MAAO,CACN,CACC,IAAK,yBACL,SAAUj/I,IACF,CACN,GAAI,mBAAmBA,EAAQ,aAAa,SAAS,CAAC,EACtD,MAAOA,EAAQ,WAAaA,EAAQ,aAAeA,EAAQ,aAAa,YAAY,CACpF,GAEF,SAAU,GACV,CACD,CACD,EAED,WAAW,CAAE,KAAAzoB,EAAM,eAAA6xC,GAAkB,CACpC,MAAO,CACN,OACA3G,GAAgB,CAAE,YAAa,OAAQ,MAAO,SAAW,EAAE,KAAK,QAAQ,eAAgB2G,CAAc,EACtG,KAAK,QAAQ,WAAW,CACvB,QAAS,KAAK,QACd,KAAA7xC,CACJ,CAAI,CACD,CACD,EAED,aAAc,CACb,OAAOqrE,GAAoBk8F,GAAO,CAClC,EAED,WAAWt7J,EAAOjM,EAAM,CACvBiM,EAAM,MAAM,KAAKjM,SAAK,MAAM,MAAK,qBAAoB,0BAAmBA,EAAK,MAAM,EAAE,EAAC,IAAG,CACzF,CACF,CAAC,ECrCY2nK,GAAuB,IAAIxlJ,GAAU,aAAa,EASxD,SAASylJ,KAAc,CAC7B,OAAO,IAAI5lJ,GAAO,CACjB,IAAK2lJ,GACL,MAAO,CACN,KAAM,KAAO,CACZ,MAAO,GACP,SAAU,GACV,MAAO,CACX,GACG,MAAO,CAAC3wJ,EAAIwK,IAAa,SACxB,MAAMqmJ,EAAS7wJ,EAAG,QAAQ,aAAa,EAGvC,IAFgB6wJ,iBAAQ,SAAU,QAEnBA,WAAQ,MAAO,CAC7B,MAAMvmJ,EAAW,CAChB,OAAOumJ,IAAO,QAAPA,OAAgBrmJ,EAAS,MAChC,UAAUqmJ,IAAO,WAAPA,OAAmBrmJ,EAAS,SACtC,MAAOA,EAAS,KAChB,EAED,OAAIqmJ,WAAQ,QACXvmJ,EAAS,SAAW,GACpBA,EAAS,MAASE,EAAS,MAAQqmJ,EAAO,OAGpCvmJ,CACZ,KACYE,SAER,CACD,CACH,CAAE,CACF,CAEO,MAAMsmJ,IAAiB,CAACnnE,EAAOonE,IAAa,CAAC,CAAE,GAAA/wJ,CAAE,IAChDA,EAAG,QAAQ,cAAe,CAAE,MAAA2pF,EAAO,SAAAonE,CAAQ,CAAE,EAGxCC,IAAY,IAAM,CAAC,CAAE,GAAAhxJ,KAC1BA,EAAG,QAAQ,cAAe,CAAE,MAAO,CAAC,CAAE,EAGjCixJ,IAAgB,IAAM,CAAC,CAAE,GAAAjxJ,KAC9BA,EAAG,QAAQ,cAAe,CAAE,MAAO,GAAI,EC3ChC,SAASkxJ,KAAoB,CAC3C,OAAO,IAAIlmJ,GAAO,CACjB,IAAK,IAAIG,GAAU,mBAAmB,EACtC,MAAO,CACN,KAAKtd,EAAG,CAAE,IAAAmD,GAAO,CAChB,MAAMmC,EAASg+J,GAAUngK,EAAK,EAAE,EAChC,OAAOogK,GAAiBpgK,EAAKmC,EAAO,OAAO,CAC3C,EACD,MAAM6M,EAAIrY,EAAO6iB,EAAUF,EAAU,CACpC,MAAM+mJ,EAAYV,GAAqB,SAASnmJ,CAAQ,EAClD8mJ,EAAYX,GAAqB,SAASrmJ,CAAQ,EAElDinJ,EAAgBD,EAAU,QAAUD,EAAU,MAC9CG,EAAgBF,EAAU,QAAUD,EAAU,MAC9CI,EAAmBH,EAAU,WAAaD,EAAU,SAE1D,GAAIrxJ,EAAG,YAAcuxJ,GAAgBC,GAAgBC,EAAiB,CACrE,KAAM,CAAE,QAAAjqF,EAAS,MAAAkqF,EAAO,MAAAhlK,CAAO,EAAGykK,GAAUnxJ,EAAG,IAAKsxJ,EAAU,MAAO,CACpE,SAAUA,EAAU,SACpB,MAAOA,EAAU,KACvB,CAAM,EAED,OAAA1sB,GAAK,6BAA8B,CAClC,aAAe0sB,EAAU,QAAU,GAAK,KAAOI,EAC/C,WAAYhlK,CAClB,CAAM,EAEM0kK,GAAiBpxJ,EAAG,IAAKwnE,CAAO,CAC5C,KACY7/E,SAER,CACD,EACD,MAAO,CACN,YAAYsN,EAAO,CAClB,OAAO,KAAK,SAASA,CAAK,CAC1B,CACD,CACH,CAAE,CACF,CAWO,SAASk8J,GAAUngK,EAAK24F,EAAOpzF,EAAS,WAC9CA,EAAU,CACT,UAAUA,mBAAS,WAATA,OAAqB,GAC/B,OAAOA,mBAAS,QAATA,OAAkB,CACzB,EAED,MAAMixE,EAAU,CAAE,EAElB,GAAI,CAACmiB,GAASA,IAAU,GACvB,MAAO,CACN,QAAAniB,EACA,MAAOA,EAAQ,OACf,MAAOjxE,EAAQ,KACf,EAkBF,GAfAvF,EAAI,YAAY,CAAChI,EAAMsE,EAAQqkK,IAAc,CAC5C,GAAI,CAAC3oK,EAAK,OACT,OAGD,MAAM6O,EAAU7O,EAAK,KAAK,SAAS,IAAI,OAAO2gG,EAAO,IAAI,CAAC,EAE1D,UAAW73F,KAAS+F,EACnB2vE,EAAQ,KAAK,CACZ,KAAM11E,EAAM,MAAQxE,EACpB,GAAIwE,EAAM,MAAQxE,EAASq8F,EAAM,MACrC,CAAI,CAEJ,CAAE,EAEGpzF,EAAQ,SACX,MAAO,CACN,QAAAixE,EACA,MAAOA,EAAQ,OACf,MAAOjxE,EAAQ,KACf,EACK,CACN,MAAM7J,EAAQklK,IAAer7J,EAAQ,MAAOixE,EAAQ,MAAM,EAE1D,MAAO,CACN,QAAS,EAACA,IAAQ96E,CAAK,IAAb86E,OAAkBA,CAAO,EACnC,MAAOA,EAAQ,OACf,MAAA96E,CACA,CACD,CACF,CAUO,SAAS0kK,GAAiBpgK,EAAKw2E,EAAS,CAC9C,MAAM7iD,EAAc,CAAE,EAEtB,OAAI6iD,EAAQ,OAAS,EACb/iD,GAAc,OAGtB+iD,EAAQ,QAAS/8E,GAAW,CAC3Bk6B,EAAY,KACXL,GAAW,OAAO75B,EAAO,KAAMA,EAAO,GAAI,CACzC,eAAgB,oBAChB,MAAO,8DACX,CAAI,CACD,CACH,CAAE,EAEMg6B,GAAc,OAAOzzB,EAAK2zB,CAAW,EAC7C,CAQA,SAASitI,IAAellK,EAAOq0E,EAAQ,CACtC,OAAIA,EAAS,EACL,EAGJr0E,EAAQ,GACHA,EAAQq0E,EAASA,GAAUA,EAE5Br0E,EAAQq0E,CAEjB,CC/IA,MAAe8wF,IAAAv2H,GAAU,OAAO,CAC/B,KAAM,SAEN,aAAc,CACb,MAAO,CACN,eAAAw1H,IACA,UAAAE,IACA,cAAAC,GACA,CACD,EAED,uBAAwB,CACvB,MAAO,CACNL,IAAa,EACbM,IAAmB,CACnB,CACD,CACF,CAAC,ECxBKjkB,GAAa,cAOb6kB,IAAcrgK,GAAK,OAAO,CAC5B,KAAM,cACN,YAAa,CACT,MAAO,CACH,aAAc,WACd,eAAgB,CAAE,EAClB,UAAW,GACX,eAAgB,EAC5B,CACK,EACD,MAAO,aACP,SAAU,CACN,MAAO,GAAG,YAAK,QAAQ,aAAY,IACtC,EACD,eAAgB,CACZ,MAAO,CACH,MAAO,CACH,QAAS,EACT,UAAWggB,GACAA,EAAQ,aAAa,OAAO,EAC7B,SAASA,EAAQ,aAAa,OAAO,GAAK,GAAI,EAAE,EAChD,CAEb,EACD,KAAM,CACF,QAAS,OACT,UAAWA,GAAWA,EAAQ,aAAa,MAAM,CACpD,CACb,CACK,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,IACR,CACb,CACK,EACD,WAAW,CAAE,eAAAopB,GAAkB,CAC3B,KAAM,CAAE,MAAA3uC,EAAO,GAAG6lK,CAAsB,EAAKl3H,EAC7C,OAAO3uC,IAAU,EACX,CAAC,KAAMgoC,GAAgB,KAAK,QAAQ,eAAgB69H,CAAsB,EAAG,CAAC,EAC9E,CAAC,KAAM79H,GAAgB,KAAK,QAAQ,eAAgB2G,CAAc,EAAG,CAAC,CAC/E,EACD,aAAc,CACV,MAAO,CACH,kBAAmB,IAAM,CAAC,CAAE,SAAA7D,EAAU,MAAApE,CAAK,IACnC,KAAK,QAAQ,eACNA,EAAK,EAAG,WAAW,KAAK,KAAM,KAAK,QAAQ,aAAc,KAAK,QAAQ,SAAS,EAAE,iBAAiBu6G,GAAS,KAAM,KAAK,OAAO,cAAcC,GAAU,IAAI,CAAC,EAAE,MAEhKp2G,EAAS,WAAW,KAAK,KAAM,KAAK,QAAQ,aAAc,KAAK,QAAQ,SAAS,CAEvG,CACK,EACD,sBAAuB,CACnB,MAAO,CACH,cAAe,IAAM,KAAK,OAAO,SAAS,kBAAmB,CACzE,CACK,EACD,eAAgB,CACZ,IAAIs2G,EAAY5hG,GAAkB,CAC9B,KAAMuhG,GACN,KAAM,KAAK,KACX,cAAen7I,IAAU,CAAE,MAAO,CAACA,EAAM,CAAC,IAC1C,cAAe,CAACA,EAAO9I,IAASA,EAAK,WAAaA,EAAK,MAAM,QAAU,CAAC8I,EAAM,CAAC,CAC3F,CAAS,EACD,OAAI,KAAK,QAAQ,WAAa,KAAK,QAAQ,kBACvCw7I,EAAY5hG,GAAkB,CAC1B,KAAMuhG,GACN,KAAM,KAAK,KACX,UAAW,KAAK,QAAQ,UACxB,eAAgB,KAAK,QAAQ,eAC7B,cAAen7I,IAAU,CAAE,MAAO,CAACA,EAAM,CAAC,EAAG,GAAG,KAAK,OAAO,cAAcs7I,GAAU,IAAI,CAAC,GACzF,cAAe,CAACt7I,EAAO9I,IAASA,EAAK,WAAaA,EAAK,MAAM,QAAU,CAAC8I,EAAM,CAAC,EAC/E,OAAQ,KAAK,MAC7B,CAAa,GAEE,CACHw7I,CACZ,CACK,CACL,CAAC,ECvFKwkB,IAAcE,IAAkB,OAAO,CAC5C,eAAgB,OACf,MAAO,CACN,IAAGlpK,EAAA,KAAK,SAAL,YAAAA,EAAA,WACH,OAAQ,CACP,QAAS,GACT,SAAU,EACV,CACD,CACD,CACF,CAAC,ECXKmpK,IAAYxgK,GAAK,OAAO,CAC1B,KAAM,YACN,SAAU,IACV,YAAa,CACT,MAAO,CACH,eAAgB,CAAE,CAC9B,CACK,EACD,MAAO,QACP,QAAS,UACT,WAAY,CACR,MAAO,CACH,CAAE,IAAK,GAAK,CACxB,CACK,EACD,WAAW,CAAE,eAAAopC,GAAkB,CAC3B,MAAO,CAAC,IAAK3G,GAAgB,KAAK,QAAQ,eAAgB2G,CAAc,EAAG,CAAC,CAC/E,EACD,aAAc,CACV,MAAO,CACH,aAAc,IAAM,CAAC,CAAE,SAAA7D,KACZA,EAAS,QAAQ,KAAK,IAAI,CAEjD,CACK,EACD,sBAAuB,CACnB,MAAO,CACH,YAAa,IAAM,KAAK,OAAO,SAAS,aAAc,CAClE,CACK,CACL,CAAC,ECvBc,SAASk7H,GAAsBlhK,EAAK,CAClD,MAAMmhK,EAAa,CAAE,EAErB,OAAAnhK,EAAI,YAAY,CAAChI,EAAMsE,IAAW,CAC7B8kK,IAAgBppK,CAAI,EACvBmpK,EAAW,KAAK,OAAO,OAAO,CAC7B,OAAA7kK,EACA,SAAUtE,EAAK,SACf,KAAM,WACV,CAAI,CAAC,EACQA,EAAK,KAAK,OAAS,WAC7BmpK,EAAW,KAAK,OAAO,OAAO,CAC7B,OAAA7kK,EACA,SAAUtE,EAAK,SACf,KAAM,cACV,CAAI,CAAC,CAEL,CAAE,EAEMmpK,CACR,CAOA,SAASC,IAAgBppK,EAAM,CAC9B,GAAIA,EAAK,KAAK,OAAS,aAAeqpK,IAAgBrpK,CAAI,EACzD,MAAO,GAER,MAAMomH,EAAOkjD,IAAYtpK,EAAK,UAAU,EACxC,MAAI,EAAComH,IAAQ8+C,GAAqB9+C,CAAI,EAIvC,CAOA,SAASijD,IAAgBrpK,EAAM,CAC9B,OAAOA,EAAK,WAAa,GACpBA,EAAK,aAAe,GAAKA,EAAK,UAAU,YAAY,MAC1D,CAOA,SAASspK,IAAYtpK,EAAM,OAC1B,OAAKA,GAGQA,IAAK,MAAM,KAAK+E,GAAQA,EAAK,KAAK,OAAS,MAAM,IAAjD/E,cACA,MAAM,KAHlB,MAIF,CCpDA,MAAA0rE,IAAA,CACA,wBACA,gBACA,OACA,OACA,WACA,EACA,WACA,YACA,sBACA,EACA,MACA,YACA,UACA,CACA,CACA,6tBCQAA,IAAA,CACA,sBAEA,YACA,iBAAA69F,IACA,UAAA3hB,GACA,eAAAC,GACA,gBAAA77E,GACA,cAAAI,GACA,kBAAAC,GACA,WAAAg0F,EACA,EAEA,OACA,MACA,YACA,WACA,EACA,QACA,YACA,WACA,EACA,UACA,YACA,WACA,EACA,SACA,YACA,WACA,CACA,EAEA,OACA,OACA,OACA,CACA,EAEA,SACA,SACA,sCACA,EACA,OAAAhgK,EAAA,CACA,aACA,MAAAupC,EAAA,6BACA,gCACA,GAAAvpC,IAAA,aACAupC,EAAA,qBACA,MACA,CACAA,EAAA,kBACA,EACA,aACA,mCACA,iBACA,4BACA,EACA,CACA,CACA,qvCC5Fa4/H,IAA0B,IAAIrnJ,GAAU,mBAAmB,EAWzD,SAASsnJ,IAAe,CAAE,OAAAtgI,GAAU,CAClD,OAAO,IAAInnB,GAAO,CACjB,IAAKwnJ,IAEL,MAAO,CACN,KAAK3kK,EAAG,CAAE,IAAAmD,GAAO,CAChB,GAAI,CAACmhC,EAAO,QAAQ,SACnB,MAAO,CAAE,YAAa1N,GAAc,QAAU,EAE/C,MAAMiuI,EAAiBR,GAAsBlhK,CAAG,EAChD,MAAO,CACN,eAAA0hK,EACA,YAAaC,GAAyB3hK,EAAK0hK,EAAgBvgI,CAAM,CACjE,CACD,EACD,MAAMnyB,EAAIrY,EAAO8wG,EAAWnuF,EAAU,CAIrC,GAHI,CAACtK,EAAG,YAGJ,CAACmyB,EAAO,QAAQ,SACnB,OAAOxqC,EAER,MAAM+qK,EAAiBR,GAAsB5nJ,EAAS,GAAG,EACnDqa,EAAcojI,IAAepgK,EAAOqY,EAAI0yJ,CAAc,GAAKC,GAAyBroJ,EAAS,IAAKooJ,EAAgBvgI,CAAM,EAC9H,MAAO,CAAE,eAAAugI,EAAgB,YAAA/tI,CAAa,CACtC,CACD,EAED,MAAO,CACN,YAAY1vB,EAAO,CAClB,OAAO,KAAK,SAASA,CAAK,EAAE,WAC5B,CACD,CACH,CAAE,CACF,CAcA,SAAS8yJ,IAAepgK,EAAOqY,EAAI0yJ,EAAgB,CAClD,GAAIE,IAAsBF,EAAgB/qK,EAAM,cAAc,EAC7D,MAAO,GAER,IAAIsgK,EAAqB,GACzB,MAAMtjI,EAAch9B,EAAM,YAAY,IAAIqY,EAAG,QAASA,EAAG,IAAK,CAAE,SAAU,IAAM,CAAEioJ,EAAqB,EAAM,EAAE,EAC/G,OAAOA,EACJ,GACAtjI,CACJ,CAUA,SAASiuI,IAAsBjmK,EAASmd,EAAM,CAC7C,OAAQnd,EAAQ,SAAWmd,EAAK,QAC5Bnd,EAAQ,KAAKu7J,IAAgBp+I,CAAI,CAAC,CACvC,CAUA,MAAMo+I,IAAmB17J,GAAU,CAACqmK,EAAe5oK,IAC3C4oK,EAAc,OAASrmK,EAAMvC,CAAC,EAAE,MACnC4oK,EAAc,WAAarmK,EAAMvC,CAAC,EAAE,SAYzC,SAAS0oK,GAAyB3hK,EAAK0hK,EAAgBvgI,EAAQ,CAC9D,MAAMxN,EAAc+tI,EAAe,IAAKG,GAAkBC,IAA2BD,EAAe1gI,CAAM,CAAC,EAC3G,OAAO1N,GAAc,OAAOzzB,EAAK2zB,CAAW,CAC7C,CAUA,SAASmuI,IAA2BD,EAAe1gI,EAAQ,CAC1D,OAAO7N,GAAW,OACjBuuI,EAAc,OAAS,EACvBE,IAA8BF,EAAe1gI,CAAM,EACnD,CAAE,KAAM,EAAI,CACZ,CACF,CAUA,SAAS4gI,IAA8BF,EAAe1gI,EAAQ,CAC7D,MAAM6gI,EAAY,CACjB,QAAS7gI,EACT,GAAG0gI,CACH,EACK/rK,EAAK,SAAS,cAAc,KAAK,EACjC8sE,EAAY5sE,GAAI,OAAOisK,GAAc,EAI3C,OAHsB,IAAIr/F,EAAU,CACnC,UAAAo/F,CACF,CAAE,EAAE,OAAOlsK,CAAE,EACS,GACtB,CCpJA,MAAMmrK,IAAYiB,IAAgB,OAAO,CAExC,WAAY,CACX,OAAO,KAAK,SAAS,IAAI/7J,GAAQ,OAAO,OAAOA,EAAM,CAAE,mBAAoB,MAAQ,EAAC,CACpF,EAED,sBAAuB,CACtB,MAAO,CACN,UAAW,IAAM,CAEhB,MAAMgS,EAAY,KAAK,OAAO,MAAM,UACpC,GAAIA,EAAU,MAAM,eAAiB,EAAG,MAAO,GAE/C,MAAMngB,EAAOmgB,EAAU,MAAM,OACvBzc,EAAQyc,EAAU,MAAM,MAAMA,EAAU,MAAM,MAAQ,CAAC,EAE7D,GAAIzc,IAAU,EAAG,MAAO,GAGxB,MAAMymK,EADShqJ,EAAU,MAAM,KAAKA,EAAU,MAAM,MAAQ,CAAC,EACjC,MAAMzc,EAAQ,CAAC,EAE3C,OAAI1D,EAAK,KAAK,OAAS,KAAK,MACxBmqK,EAAa,KAAK,OAAS,KAAK,KAC5B,KAAK,OAAO,MAAK,EAAG,eAAe,aAAc,EAAC,IAAK,EAExD,EACP,CACD,CACD,EAED,uBAAwB,CACvB,MAAO,CACNV,IAAe,CACd,OAAQ,KAAK,MACjB,CAAI,CACD,CACD,CACF,CAAC,ECpCKW,IAAc93H,GAAU,OAAO,CACjC,KAAM,cACN,YAAa,CACT,MAAO,CACH,iBAAkB,kBAClB,eAAgB,WAChB,YAAa,oBACb,qBAAsB,GACtB,gBAAiB,GACjB,gBAAiB,EAC7B,CACK,EACD,uBAAwB,CACpB,MAAO,CACH,IAAItwB,GAAO,CACP,IAAK,IAAIG,GAAU,aAAa,EAChC,MAAO,CACH,YAAa,CAAC,CAAE,IAAAna,EAAK,UAAAmY,KAAgB,CACjC,MAAM3V,EAAS,KAAK,OAAO,YAAc,CAAC,KAAK,QAAQ,qBACjD,CAAE,OAAA2U,CAAQ,EAAGgB,EACbwb,EAAc,GACpB,GAAI,CAACnxB,EACD,OAAO,KAEX,MAAM6/J,EAAa,KAAK,OAAO,QAC/B,OAAAriK,EAAI,YAAY,CAAChI,EAAM8B,IAAQ,CAC3B,MAAMwoK,EAAYnrJ,GAAUrd,GAAOqd,GAAUrd,EAAM9B,EAAK,SAClDy+E,EAAU,CAACz+E,EAAK,QAAUo7C,GAAYp7C,CAAI,EAChD,IAAKsqK,GAAa,CAAC,KAAK,QAAQ,kBAAoB7rF,EAAS,CACzD,MAAMq/D,EAAU,CAAC,KAAK,QAAQ,cAAc,EACxCusB,GACAvsB,EAAQ,KAAK,KAAK,QAAQ,gBAAgB,EAE9C,MAAMkI,EAAa1qH,GAAW,KAAKx5B,EAAKA,EAAM9B,EAAK,SAAU,CACzD,MAAO89I,EAAQ,KAAK,GAAG,EACvB,mBAAoB,OAAO,KAAK,QAAQ,aAAgB,WAClD,KAAK,QAAQ,YAAY,CACvB,OAAQ,KAAK,OACb,KAAA99I,EACA,IAAA8B,EACA,UAAAwoK,CAC5C,CAAyC,EACC,KAAK,QAAQ,WACvD,CAAiC,EACD3uI,EAAY,KAAKqqH,CAAU,CAC9B,CACD,OAAO,KAAK,QAAQ,eAChD,CAAyB,EACMvqH,GAAc,OAAOzzB,EAAK2zB,CAAW,CAC/C,CACJ,CACjB,CAAa,CACb,CACK,CACL,CAAC,EC1CD+vC,IAAA,CACA,eACA,YACA,gBAAAhB,GACA,gBAAAD,GACA,gBAAAyC,EACA,EACA,MAAAnC,EACA,gYClBew/F,IAAA9hK,GAAK,OAAO,CAE1B,KAAM,UAEN,MAAO,QAEP,QAAS,QAET,KAAM,GAEN,MAAO,OAEP,UAAW,GAEX,YAAa,CACZ,MAAO,CACN,WAAY,GACZ,aAAc,IACd,CACD,EAED,eAAgB,CACf,MAAO,CACN,KAAM,CAAE,UAAWw8J,EAAW,EAC9B,MAAO,CAAE,UAAWnnK,GAAMA,EAAG,aAAa,OAAO,CAAG,CACpD,CACD,EAED,WAAY,CACX,MAAO,CACN,CACC,IAAK,qBACL,SAAU,IACV,CACD,CACD,EAED,WAAW,CAAE,KAAAkC,GAAQ,CACpB,MAAO,CAAC,IAAK,CACZ,GAAGA,EAAK,MACR,KAAM+kK,GAAQ/kK,EAAM,KAAK,QAAQ,YAAY,EAC7C,IAAK,8BACL,EAAE,CAAC,CACJ,EAED,aAAc,CACb,OAAOqrE,GAAoBk/F,GAAO,CAClC,EAED,WAAY,CAACt+J,EAAOjM,IAAS,CAC5BiM,EAAM,MAAM,GAAG,EACfA,EAAM,KAAKjM,EAAK,YAAa,EAAK,EAClCiM,EAAM,MAAM,KAAKjM,SAAK,MAAM,KAAI,MAAKA,SAAK,MAAM,MAAK,KAAI,EACzDiM,EAAM,WAAWjM,CAAI,CACrB,EAED,aAAc,CACb,MAAO,CAON,WAAY,IAAM,CAAC,CAAE,MAAAiM,EAAO,MAAA29B,CAAK,IACzBw/H,IAAgBn9J,CAAK,GACxB29B,EAAO,EACR,QAAQ,KAAK,KAAM4gI,IAA+Bv+J,CAAK,CAAC,EACxD,IAAK,EAOT,aAAc,IAAM,CAAC,CAAE,MAAAA,EAAO,MAAA29B,CAAK,IAC3BqR,IAAS,KAAK,KAAM,KAAK,WAAYhvC,CAAK,GAC7C29B,EAAO,EACR,QAAQ,WAAW,EACnB,IAAK,EAQT,cAAgBu/E,GAAS,CAAC,CAAE,MAAAl9G,EAAO,MAAA29B,CAAK,IAChCA,EAAO,EACZ,cAAc,CACd,KAAM,UACN,MAAO,CAAE,KAAMu/E,EAAM,MAAO,SAAW,EACvC,QAAS,CAAC,CACT,KAAM,OACN,MAAO,CAAC,CACP,KAAM,OACN,MAAO,CAAE,KAAMA,CAAM,CAC7B,CAAQ,EACD,KAAMA,CACb,CAAO,CACP,CAAM,EACA,IAAK,CAER,CACD,CACF,CAAC,EASD,SAASqhD,IAA+B,CAAE,UAAArqJ,GAAa,CACtD,KAAM,CAAE,MAAAra,CAAK,EAAKqa,EAElB,MAAO,CAAE,KADImpJ,GAAYxjK,EAAM,SAAS,EACzB,MAAO,SAAW,CAClC,CASA,SAASm1C,IAASpH,EAAY/I,EAAY7+B,EAAO,CAChD,MAAM5L,EAAO2qC,GAAY6I,EAAY5nC,EAAM,MAAM,EACjD,OAAOmrC,GAAanrC,EAAO5L,EAAMyqC,CAAU,CAC5C,CAQA,SAASs+H,IAAgB,CAAE,UAAAjpJ,GAAa,CACvC,KAAM,CAAE,MAAAra,CAAK,EAAKqa,EAClB,GAAIkpJ,IAAgBvjK,EAAM,MAAM,EAC/B,MAAO,GAER,MAAMsgH,EAAOkjD,GAAYxjK,EAAM,OAAO,UAAU,EAChD,MAAI,EAACsgH,IAAQ8+C,GAAqB9+C,CAAI,EAIvC,CAOA,SAASijD,IAAgBrpK,EAAM,CAC9B,OAAOA,EAAK,WAAa,GACpBA,EAAK,aAAe,GAAKA,EAAK,UAAU,YAAY,MAC1D,CAOA,SAASspK,GAAYtpK,EAAM,OAC1B,OAAKA,GAGQA,IAAK,MAAM,KAAK+E,GAAQA,EAAK,KAAK,OAAS,MAAM,IAAjD/E,cACA,MAAM,KAHlB,MAIF,CCjLA,MAAMikJ,IAAa,yBAKbwmB,IAAWhiK,GAAK,OAAO,CACzB,KAAM,WACN,YAAa,CACT,MAAO,CACH,OAAQ,GACR,eAAgB,CAAE,EAClB,iBAAkB,UAC9B,CACK,EACD,SAAU,CACN,OAAO,KAAK,QAAQ,OAAS,mBAAqB,YACrD,EACD,SAAU,GACV,eAAgB,CACZ,MAAO,CACH,QAAS,CACL,QAAS,GACT,YAAa,GACb,UAAWggB,GAAW,CAClB,MAAMiiJ,EAAcjiJ,EAAQ,aAAa,cAAc,EACvD,OAAOiiJ,IAAgB,IAAMA,IAAgB,MAChD,EACD,WAAY5/H,IAAe,CACvB,eAAgBA,EAAW,OAC/C,EACa,CACb,CACK,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,iBAAiB,YAAK,KAAI,MAC/B,SAAU,EACb,CACb,CACK,EACD,WAAW,CAAE,KAAA9qC,EAAM,eAAA6xC,GAAkB,CACjC,MAAO,CACH,KACA3G,GAAgB,KAAK,QAAQ,eAAgB2G,EAAgB,CACzD,YAAa,KAAK,IAClC,CAAa,EACD,CACI,QACA,CACI,QACA,CACI,KAAM,WACN,QAAS7xC,EAAK,MAAM,QAAU,UAAY,IAC7C,CACJ,EACD,CAAC,MAAM,CACV,EACD,CAAC,MAAO,CAAC,CACrB,CACK,EACD,sBAAuB,CACnB,MAAM2qK,EAAY,CACd,MAAO,IAAM,KAAK,OAAO,SAAS,cAAc,KAAK,IAAI,EACzD,YAAa,IAAM,KAAK,OAAO,SAAS,aAAa,KAAK,IAAI,CAC1E,EACQ,OAAK,KAAK,QAAQ,OAGX,CACH,GAAGA,EACH,IAAK,IAAM,KAAK,OAAO,SAAS,aAAa,KAAK,IAAI,CAClE,EALmBA,CAMd,EACD,aAAc,CACV,MAAO,CAAC,CAAE,KAAA3qK,EAAM,eAAA6xC,EAAgB,OAAAF,EAAQ,OAAAxI,CAAM,IAAQ,CAClD,MAAMyhI,EAAW,SAAS,cAAc,IAAI,EACtCC,EAAkB,SAAS,cAAc,OAAO,EAChDC,EAAiB,SAAS,cAAc,MAAM,EAC9CC,EAAW,SAAS,cAAc,OAAO,EACzC/pK,EAAU,SAAS,cAAc,KAAK,EAC5C,OAAA6pK,EAAgB,gBAAkB,QAClCE,EAAS,KAAO,WAChBA,EAAS,iBAAiB,YAAarnJ,GAASA,EAAM,eAAc,CAAE,EACtEqnJ,EAAS,iBAAiB,SAAUrnJ,GAAS,CAGzC,GAAI,CAACylB,EAAO,YAAc,CAAC,KAAK,QAAQ,kBAAmB,CACvD4hI,EAAS,QAAU,CAACA,EAAS,QAC7B,MACH,CACD,KAAM,CAAE,QAAAC,CAAO,EAAKtnJ,EAAM,OACtBylB,EAAO,YAAc,OAAOwI,GAAW,YACvCxI,EACK,MAAO,EACP,MAAM,OAAW,CAAE,eAAgB,EAAK,CAAE,EAC1C,QAAQ,CAAC,CAAE,GAAAnyB,KAAS,CACrB,MAAM69B,EAAWlD,IACjB,GAAI,OAAOkD,GAAa,SACpB,MAAO,GAEX,MAAMlB,EAAc38B,EAAG,IAAI,OAAO69B,CAAQ,EAC1C,OAAA79B,EAAG,cAAc69B,EAAU,OAAW,CAClC,GAA6DlB,iBAAY,MACzE,QAAAq3H,CAC5B,CAAyB,EACM,EAC/B,CAAqB,EACI,MAEL,CAAC7hI,EAAO,YAAc,KAAK,QAAQ,oBAE9B,KAAK,QAAQ,kBAAkBnpC,EAAMgrK,CAAO,IAC7CD,EAAS,QAAU,CAACA,EAAS,SAGrD,CAAa,EACD,OAAO,QAAQ,KAAK,QAAQ,cAAc,EAAE,QAAQ,CAAC,CAACrsK,EAAKC,CAAK,IAAM,CAClEisK,EAAS,aAAalsK,EAAKC,CAAK,CAChD,CAAa,EACDisK,EAAS,QAAQ,QAAU5qK,EAAK,MAAM,QAClCA,EAAK,MAAM,SACX+qK,EAAS,aAAa,UAAW,SAAS,EAE9CF,EAAgB,OAAOE,EAAUD,CAAc,EAC/CF,EAAS,OAAOC,EAAiB7pK,CAAO,EACxC,OAAO,QAAQ6wC,CAAc,EAAE,QAAQ,CAAC,CAACnzC,EAAKC,CAAK,IAAM,CACrDisK,EAAS,aAAalsK,EAAKC,CAAK,CAChD,CAAa,EACM,CACH,IAAKisK,EACL,WAAY5pK,EACZ,OAAQiqK,GACAA,EAAY,OAAS,KAAK,KACnB,IAEXL,EAAS,QAAQ,QAAUK,EAAY,MAAM,QACzCA,EAAY,MAAM,QAClBF,EAAS,aAAa,UAAW,SAAS,EAG1CA,EAAS,gBAAgB,SAAS,EAE/B,GAE3B,CACA,CACK,EACD,eAAgB,CACZ,MAAO,CACHroH,GAAkB,CACd,KAAMuhG,IACN,KAAM,KAAK,KACX,cAAen7I,IAAU,CACrB,QAASA,EAAMA,EAAM,OAAS,CAAC,IAAM,GACzD,EACA,CAAa,CACb,CACK,CACL,CAAC,ECvJY0wC,IAA6B,CAAC7/B,EAAMkiB,IAAc,CAC9D,QAAS56B,EAAI0Y,EAAK,MAAO1Y,EAAI,EAAGA,IAAK,CACpC,MAAMjB,EAAO2Z,EAAK,KAAK1Y,CAAC,EACxB,GAAI46B,EAAU77B,CAAI,EACjB,MAAO,CACN,IAAKiB,EAAI,EAAI0Y,EAAK,OAAO1Y,CAAC,EAAI,EAC9B,MAAO0Y,EAAK,MAAM1Y,CAAC,EACnB,MAAOA,EACP,KAAAjB,CACA,CAEF,CACF,ECfMyqK,IAAWS,IAAe,OAAO,CAEtC,YAAa,CACZ,MAAO,CACN,OAAQ,GACR,eAAgB,CAAE,CAClB,CACD,EAED,UAAW,GAEX,QAAS,mBAET,eAAgB,CACf,MAAMlpI,EAAS,CAAE,GAAG,KAAK,OAAM,CAAI,EACnC,OAAAA,EAAO,QAAQ,UAAYlkC,UACnBA,WAAG,cAAc,sBAAsB,IAAvCA,cAA0C,SAE3CkkC,CACP,EAED,UAAW,CACV,CACC,SAAU,IACV,IAAK,KACL,SAAUlkC,GACQA,EAAG,cAAc,sBAAsB,EAGzD,QAAS,WACT,CACD,EAED,WAAW,CAAE,KAAAkC,EAAM,eAAA6xC,GAAkB,CACpC,MAAMs5H,EAAiB,CAAE,MAAO,8BAAgC,EAC1DC,EAAqB,CAAE,KAAM,WAAY,MAAO,GAAI,gBAAiB,EAAO,EAClF,OAAIprK,EAAK,MAAM,UACdorK,EAAmB,QAAU,GAC7BD,EAAe,OAAS,YAElB,CACN,KACAjgI,GAAgB2G,EAAgBs5H,CAAc,EAC9C,CACC,QACAC,CACA,EACD,CACC,QACA,CACA,CACD,CACD,EAGD,YAAa,GAEb,WAAY,CAACn/J,EAAOjM,IAAS,CAC5BiM,EAAM,MAAM,IAAIjM,SAAK,MAAM,QAAU,IAAM,IAAG,KAAI,EAClDiM,EAAM,cAAcjM,CAAI,CACxB,EAED,eAAgB,CACf,MAAO,CACN,GAAG,KAAK,OAAQ,EAChB0iD,GAAkB,CACjB,KAAM,kCACN,KAAM,KAAK,KACX,cAAe55C,IAAU,CACxB,QAAS,KAAK,SAASA,EAAMA,EAAM,OAAS,CAAC,CAAC,CACnD,EACA,CAAI,CACD,CACD,EAED,uBAAwB,CACvB,MAAO,CACN,IAAIkZ,GAAO,CACV,MAAO,CACN,YAAa,CAACyD,EAAM3jB,EAAK4hB,IAAU,CAClC,MAAMzX,EAAQwZ,EAAK,MACbthB,EAAS8H,EAAM,OAEf80J,EAAct7I,EAAK,YAAY,CAAE,KAAM/B,EAAM,QAAS,IAAKA,EAAM,QAAS,EAC1EmxB,EAAW5oC,EAAM,IAAI,QAAQ80J,EAAY,GAAG,EAC5C3iH,EAAa5E,IAA2B3E,EAAU,SAAS70C,EAAM,CACtE,OAAOA,EAAK,OAASmE,EAAO,MAAM,UAC9BnE,EAAK,OAASmE,EAAO,MAAM,QACtC,CAAO,EAED,GADsBuf,EAAM,OAAO,QAAQ,YAAa,IAAK,MAEzD,CAAC06B,GACDA,EAAW,KAAK,OAASj6C,EAAO,MAAM,UACnC,CAACshB,EAAK,SACZ,OAED,MAAMzO,EAAK/K,EAAM,GACjB+K,EAAG,cAAconC,EAAW,IAAKj6C,EAAO,MAAM,SAAU,CAAE,QAAS,CAACi6C,EAAW,KAAK,MAAM,OAAO,CAAE,EACnG34B,EAAK,SAASzO,CAAE,CAChB,CACD,CACL,CAAI,CACD,CACD,CAEF,CAAC,EC7GKq0J,IAAW5iK,GAAK,OAAO,CACzB,KAAM,WACN,YAAa,CACT,MAAO,CACH,aAAc,WACd,eAAgB,CAAE,CAC9B,CACK,EACD,MAAO,aACP,SAAU,CACN,MAAO,GAAG,YAAK,QAAQ,aAAY,IACtC,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,iBAAiB,YAAK,KAAI,MAC/B,SAAU,EACb,CACb,CACK,EACD,WAAW,CAAE,eAAAopC,GAAkB,CAC3B,MAAO,CAAC,KAAM3G,GAAgB,KAAK,QAAQ,eAAgB2G,EAAgB,CAAE,YAAa,KAAK,IAAI,CAAE,EAAG,CAAC,CAC5G,EACD,aAAc,CACV,MAAO,CACH,eAAgB,IAAM,CAAC,CAAE,SAAA7D,KACdA,EAAS,WAAW,KAAK,KAAM,KAAK,QAAQ,YAAY,CAE/E,CACK,EACD,sBAAuB,CACnB,MAAO,CACH,cAAe,IAAM,KAAK,OAAO,SAAS,eAAgB,CACtE,CACK,CACL,CAAC,ECjCKq9H,IAAWC,IAAe,OAAO,CAEtC,UAAW,CACV,CACC,SAAU,IACV,IAAK,uBACL,CACD,EAED,WAAW,CAAE,eAAAz5H,GAAkB,CAC9B,MAAO,CAAC,KAAM3G,GAAgB,KAAK,QAAQ,eAAgB2G,EAAgB,CAAE,MAAO,oBAAsB,GAAG,CAAC,CAC9G,EAED,eAAgB,OACf,MAAO,CACN,IAAG/xC,EAAA,KAAK,SAAL,YAAAA,EAAA,WACH,OAAQ,CACP,QAAS,GACT,SAAU,EACV,EACD,OAAQ,CACP,QAAS,IACT,SAAU,GACV,WAAY,GACZ,UAAYhC,GAAOA,EAAG,aAAa,aAAa,CAChD,CACD,CACD,EAED,WAAY,CAACmO,EAAOjM,IAAS,CAC5BiM,EAAM,WAAWjM,EAAM,KAAM,IAAM,GAAGA,SAAK,MAAM,OAAM,IAAG,CAC1D,CAEF,CAAC,EC3BD,SAASurK,GAAe,CAAE,MAAAnhK,EAAO,KAAApK,GAAQ,CACxC,OAAQ,MAAM,QAAQoK,CAAK,GAAKA,EAAM,SAASpK,EAAK,IAAI,GAAMA,EAAK,OAASoK,CAC7E,CASA,MAAMohK,IAAel5H,GAAU,OAAO,CACrC,KAAM,eAEN,YAAa,CACZ,MAAO,CACN,KAAM,YACN,SAAU,CAAC,WAAW,CACtB,CACD,EAED,uBAAwB,CACvB,MAAMrxB,EAAS,IAAIkB,GAAU,KAAK,IAAI,EAChCspJ,EAAgB,OAAO,QAAQ,KAAK,OAAO,OAAO,KAAK,EAC3D,IAAI,CAAC,EAAG9sK,CAAK,IAAMA,CAAK,EACxB,OAAOqB,GAAQ,KAAK,QAAQ,SAAS,SAASA,EAAK,IAAI,CAAC,EAE1D,MAAO,CACN,IAAIgiB,GAAO,CACV,IAAKf,EACL,kBAAmB,CAACpc,EAAG6mK,EAAIz/J,IAAU,CACpC,KAAM,CAAE,IAAAjE,EAAK,GAAAgP,EAAI,OAAA7S,CAAQ,EAAG8H,EACtB0/J,EAAwB1qJ,EAAO,SAAShV,CAAK,EAC7C2/J,EAAc5jK,EAAI,QAAQ,KAC1B3H,EAAO8D,EAAO,MAAM,KAAK,QAAQ,IAAI,EAE3C,GAAKwnK,EAIL,OAAO30J,EAAG,OAAO40J,EAAavrK,EAAK,OAAM,CAAE,CAC3C,EACD,MAAO,CACN,KAAM,CAACwE,EAAGoH,IAAU,CACnB,MAAMsS,EAAWtS,EAAM,GAAG,IAAI,UAC9B,MAAO,CAACs/J,GAAe,CAAE,KAAMhtJ,EAAU,MAAOktJ,EAAe,CAC/D,EACD,MAAO,CAACz0J,EAAIrY,IAAU,CACrB,GAAI,CAACqY,EAAG,WACP,OAAOrY,EAGR,MAAM4f,EAAWvH,EAAG,IAAI,UACxB,MAAO,CAACu0J,GAAe,CAAE,KAAMhtJ,EAAU,MAAOktJ,EAAe,CAC/D,CACD,CACL,CAAI,CACD,CACD,CACF,CAAC,ECpEKI,IAAiB,+CAIjBC,IAAiB,+CAIjBC,IAAuB,2CAIvBC,IAAuB,2CAKvBC,IAASxnK,GAAK,OAAO,CACvB,KAAM,SACN,YAAa,CACT,MAAO,CACH,eAAgB,CAAE,CAC9B,CACK,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,IACR,EACD,CACI,IAAK,IACL,SAAUzE,GAAQA,EAAK,MAAM,YAAc,UAAY,IAC1D,EACD,CACI,MAAO,mBACV,CACb,CACK,EACD,WAAW,CAAE,eAAA6xC,GAAkB,CAC3B,MAAO,CAAC,KAAM3G,GAAgB,KAAK,QAAQ,eAAgB2G,CAAc,EAAG,CAAC,CAChF,EACD,aAAc,CACV,MAAO,CACH,UAAW,IAAM,CAAC,CAAE,SAAA7D,KACTA,EAAS,QAAQ,KAAK,IAAI,EAErC,aAAc,IAAM,CAAC,CAAE,SAAAA,KACZA,EAAS,WAAW,KAAK,IAAI,EAExC,YAAa,IAAM,CAAC,CAAE,SAAAA,KACXA,EAAS,UAAU,KAAK,IAAI,CAEnD,CACK,EACD,sBAAuB,CACnB,MAAO,CACH,QAAS,IAAM,KAAK,OAAO,SAAS,aAAc,EAClD,QAAS,IAAM,KAAK,OAAO,SAAS,aAAc,CAC9D,CACK,EACD,eAAgB,CACZ,MAAO,CACH8T,GAAc,CACV,KAAM+pH,IACN,KAAM,KAAK,IAC3B,CAAa,EACD/pH,GAAc,CACV,KAAMiqH,IACN,KAAM,KAAK,IAC3B,CAAa,CACb,CACK,EACD,eAAgB,CACZ,MAAO,CACH7nH,GAAc,CACV,KAAM4nH,IACN,KAAM,KAAK,IAC3B,CAAa,EACD5nH,GAAc,CACV,KAAM8nH,IACN,KAAM,KAAK,IAC3B,CAAa,CACb,CACK,CACL,CAAC,EC3ED,SAASE,IAAqB9vD,EAAQ,CAClC,OAAIA,EAAO,SAAW,EACXA,EAAO,CAAC,EAAE,OAEjBA,EAAO,SAAW,GAAKA,EAAO,CAAC,EAAE,OAC1B,CAAC,KAAM,IAAI,EAAE,SAASA,EAAO,CAAC,EAAE,MAAQA,EAAO,CAAC,EAAE,KAAK,EAE3D,EACX,CAMA,SAAS+O,IAAS59G,EAAS,CACvB,OAAO,IAAIyU,GAAO,CACd,IAAK,IAAIG,GAAU,UAAU,EAC7B,kBAAmB,CAAC4tB,EAAcvuB,EAAUF,IAAa,CAIrD,MAAM6+B,EAAapQ,EAAa,KAAK/G,GAAeA,EAAY,UAAU,GAAK,CAACxnB,EAAS,IAAI,GAAGF,EAAS,GAAG,EAItG6qJ,EAAkBp8H,EAAa,KAAK/G,GAAeA,EAAY,QAAQ,iBAAiB,CAAC,EAK/F,GAAI,CAACmX,GAAcgsH,EACf,OAEJ,KAAM,CAAE,GAAAn1J,CAAI,EAAGsK,EACT83B,EAAYF,GAAwB13B,EAAS,IAAK,CAAC,GAAGuuB,CAAY,CAAC,EA4DzE,GA3DgBwK,GAAiBnB,CAAS,EAClC,QAAQ,CAAC,CAAE,SAAAgzH,KAAe,CAE9B,MAAMC,EAAuB9yH,GAAoBj4B,EAAS,IAAK8qJ,EAAUpsK,GAAQA,EAAK,WAAW,EACjG,IAAIssK,EACAC,EAYJ,GAXIF,EAAqB,OAAS,GAE9BC,EAAYD,EAAqB,CAAC,EAClCE,EAAuBjrJ,EAAS,IAAI,YAAYgrJ,EAAU,IAAKA,EAAU,IAAMA,EAAU,KAAK,SAAU,OAAW,GAAG,GAEjHD,EAAqB,QAEvB/qJ,EAAS,IAAI,YAAY8qJ,EAAS,KAAMA,EAAS,GAAI,IAAK,GAAG,EAAE,SAAS,GAAG,IAC9EE,EAAYD,EAAqB,CAAC,EAClCE,EAAuBjrJ,EAAS,IAAI,YAAYgrJ,EAAU,IAAKF,EAAS,GAAI,OAAW,GAAG,GAE1FE,GAAaC,EAAsB,CACnC,MAAMC,EAAwBD,EAAqB,MAAM,GAAG,EAAE,OAAOl1J,GAAKA,IAAM,EAAE,EAClF,GAAIm1J,EAAsB,QAAU,EAChC,MAAO,GAEX,MAAMC,EAAsBD,EAAsBA,EAAsB,OAAS,CAAC,EAC5EE,EAAyBJ,EAAU,IAAMC,EAAqB,YAAYE,CAAmB,EACnG,GAAI,CAACA,EACD,MAAO,GAEX,MAAME,EAAmBC,GAASH,CAAmB,EAAE,IAAI9rK,GAAKA,EAAE,SAAS4M,EAAQ,eAAe,CAAC,EACnG,GAAI,CAAC2+J,IAAqBS,CAAgB,EACtC,MAAO,GAEXA,EACK,OAAOxjD,GAAQA,EAAK,MAAM,EAE1B,IAAIA,IAAS,CACd,GAAGA,EACH,KAAMujD,EAAyBvjD,EAAK,MAAQ,EAC5C,GAAIujD,EAAyBvjD,EAAK,IAAM,CAChE,EAAsB,EAEG,OAAOA,GACH7nG,EAAS,OAAO,MAAM,KAGpB,CAACA,EAAS,IAAI,aAAa6nG,EAAK,KAAMA,EAAK,GAAI7nG,EAAS,OAAO,MAAM,IAAI,EAFrE,EAGd,EAEI,OAAO6nG,GAAQ57G,EAAQ,SAAS47G,EAAK,KAAK,CAAC,EAE3C,QAAQA,GAAQ,CACbzuE,GAAgByuE,EAAK,KAAMA,EAAK,GAAI7nG,EAAS,GAAG,EAAE,KAAKqnB,GAAQA,EAAK,KAAK,OAASp7B,EAAQ,IAAI,GAGlGyJ,EAAG,QAAQmyG,EAAK,KAAMA,EAAK,GAAI57G,EAAQ,KAAK,OAAO,CAC/C,KAAM47G,EAAK,IACd,EAAC,CAC1B,CAAqB,CACJ,CACjB,CAAa,EACG,CAACnyG,GAAG,MAAM,OAGd,OAAOA,CACV,CACT,CAAK,CACL,CAEA,SAASgpJ,IAAazyJ,EAAS,CAC3B,OAAO,IAAIyU,GAAO,CACd,IAAK,IAAIG,GAAU,iBAAiB,EACpC,MAAO,CACH,YAAa,CAACsD,EAAM3jB,EAAK4hB,IAAU,CAC/B,IAAI5jB,EAAIQ,EAIR,GAHIojB,EAAM,SAAW,GAGjB,CAAC+B,EAAK,SACN,MAAO,GAEX,IAAI,EAAI/B,EAAM,OACd,MAAMo2C,EAAM,GACZ,KAAO,EAAE,WAAa,OAClBA,EAAI,KAAK,CAAC,EACV,EAAI,EAAE,WAEV,GAAI,CAACA,EAAI,KAAKn7D,GAASA,EAAM,WAAa,GAAG,EACzC,MAAO,GAEX,MAAM+F,EAAQs1C,GAAcv0B,EAAK,MAAOlY,EAAQ,KAAK,IAAI,EACnD47G,EAAOzlG,EAAM,OACb0iG,GAAQtmH,EAAiDqpH,iBAAK,QAAU,MAAQrpH,IAAO,OAASA,EAAK4E,EAAM,KAC3GlE,GAAUF,EAAiD6oH,iBAAK,UAAY,MAAQ7oH,IAAO,OAASA,EAAKoE,EAAM,OACrH,OAAIykH,GAAQ/C,GACR,OAAO,KAAKA,EAAM5lH,CAAM,EACjB,IAEJ,EACV,CACJ,CACT,CAAK,CACL,CAEA,SAASqsK,IAAat/J,EAAS,CAC3B,OAAO,IAAIyU,GAAO,CACd,IAAK,IAAIG,GAAU,iBAAiB,EACpC,MAAO,CACH,YAAa,CAACsD,EAAM/B,EAAO1d,IAAU,CACjC,KAAM,CAAE,MAAAiG,CAAO,EAAGwZ,EACZ,CAAE,UAAAtF,CAAW,EAAGlU,EAChB,CAAE,MAAA8nB,CAAO,EAAG5T,EAClB,GAAI4T,EACA,MAAO,GAEX,IAAIk0H,EAAc,GAClBjiJ,EAAM,QAAQ,QAAQhG,GAAQ,CAC1BioJ,GAAejoJ,EAAK,WACxC,CAAiB,EACD,MAAMmpH,EAAOxpF,GAAKsoH,EAAa,CAAE,gBAAiB16I,EAAQ,eAAiB,GAAE,KAAKo7B,GAAQA,EAAK,QAAUA,EAAK,QAAUs/G,CAAW,EACnI,MAAI,CAACA,GAAe,CAAC9+B,EACV,IAEX57G,EAAQ,OAAO,SAAS,QAAQA,EAAQ,KAAM,CAC1C,KAAM47G,EAAK,IAC/B,CAAiB,EACM,GACV,CACJ,CACT,CAAK,CACL,CAMA,MAAM2jD,IAAkB,8DACxB,SAASC,GAAa5yC,EAAK6yC,EAAW,CAClC,MAAMC,EAAmB,CAAC,OAAQ,QAAS,MAAO,OAAQ,SAAU,MAAO,SAAU,MAAO,MAAO,MAAM,EACzG,OAAID,GACAA,EAAU,QAAQt1C,GAAY,CAC1B,MAAMw1C,EAAgB,OAAOx1C,GAAa,SAAWA,EAAWA,EAAS,OACrEw1C,GACAD,EAAiB,KAAKC,CAAY,CAElD,CAAS,EAGE,CAAC/yC,GAAOA,EAAI,QAAQ2yC,IAAiB,EAAE,EAAE,MAAM,IAAI,OAAO,UAAUG,SAAiB,KAAK,GAAG,EAAC,wCAA0C,GAAG,CAAC,CACvJ,CAKA,MAAME,IAAO1oK,GAAK,OAAO,CACrB,KAAM,OACN,SAAU,IACV,YAAa,GACb,SAAU,GACV,UAAW,CACP,KAAK,QAAQ,UAAU,QAAQizH,GAAY,CACvC,GAAI,OAAOA,GAAa,SAAU,CAC9B01C,GAAuB11C,CAAQ,EAC/B,MACH,CACD01C,GAAuB11C,EAAS,OAAQA,EAAS,eAAe,CAC5E,CAAS,CACJ,EACD,WAAY,CACR21C,IACH,EACD,WAAY,CACR,OAAO,KAAK,QAAQ,QACvB,EACD,YAAa,CACT,MAAO,CACH,YAAa,GACb,YAAa,GACb,SAAU,GACV,UAAW,CAAE,EACb,gBAAiB,OACjB,eAAgB,CACZ,OAAQ,SACR,IAAK,+BACL,MAAO,IACV,EACD,SAAU//F,GAAO,CAAC,CAACA,CAC/B,CACK,EACD,eAAgB,CACZ,MAAO,CACH,KAAM,CACF,QAAS,KACT,UAAU7kD,EAAS,CACf,OAAOA,EAAQ,aAAa,MAAM,CACrC,CACJ,EACD,OAAQ,CACJ,QAAS,KAAK,QAAQ,eAAe,MACxC,EACD,IAAK,CACD,QAAS,KAAK,QAAQ,eAAe,GACxC,EACD,MAAO,CACH,QAAS,KAAK,QAAQ,eAAe,KACxC,CACb,CACK,EACD,WAAY,CACR,MAAO,CAAC,CACA,IAAK,UACL,SAAU/Z,GAAO,CACb,MAAM03G,EAAO13G,EAAI,aAAa,MAAM,EAEpC,MAAI,CAAC03G,GAAQ,CAAC2mD,GAAa3mD,EAAM,KAAK,QAAQ,SAAS,EAC5C,GAEJ,IACV,CACjB,CAAa,CACR,EACD,WAAW,CAAE,eAAAv0E,GAAkB,CAE3B,OAAKk7H,GAAal7H,EAAe,KAAM,KAAK,QAAQ,SAAS,EAItD,CAAC,IAAK3G,GAAgB,KAAK,QAAQ,eAAgB2G,CAAc,EAAG,CAAC,EAFjE,CAAC,IAAK3G,GAAgB,KAAK,QAAQ,eAAgB,CAAE,GAAG2G,EAAgB,KAAM,GAAI,EAAG,CAAC,CAGpG,EACD,aAAc,CACV,MAAO,CACH,QAAS/G,GAAc,CAAC,CAAE,MAAAlB,KACfA,EAAO,EAAC,QAAQ,KAAK,KAAMkB,CAAU,EAAE,QAAQ,kBAAmB,EAAI,EAAE,IAAG,EAEtF,WAAYA,GAAc,CAAC,CAAE,MAAAlB,KAClBA,EAAO,EACT,WAAW,KAAK,KAAMkB,EAAY,CAAE,qBAAsB,GAAM,EAChE,QAAQ,kBAAmB,EAAI,EAC/B,MAET,UAAW,IAAM,CAAC,CAAE,MAAAlB,KACTA,EAAO,EACT,UAAU,KAAK,KAAM,CAAE,qBAAsB,EAAI,CAAE,EACnD,QAAQ,kBAAmB,EAAI,EAC/B,KAErB,CACK,EACD,eAAgB,CACZ,MAAO,CACHsa,GAAc,CACV,KAAM7gD,GAAQ,CACV,MAAMiqK,EAAa,GACnB,GAAIjqK,EAAM,CACN,KAAM,CAAE,SAAA44H,CAAQ,EAAK,KAAK,QACpB1d,EAAQ5+E,GAAKt8B,CAAI,EAAE,OAAOslC,GAAQA,EAAK,QAAUszF,EAAStzF,EAAK,KAAK,CAAC,EACvE41E,EAAM,QACNA,EAAM,QAAQ4K,GAASmkD,EAAW,KAAK,CACnC,KAAMnkD,EAAK,MACX,KAAM,CACF,KAAMA,EAAK,IACd,EACD,MAAOA,EAAK,KACf,EAAE,CAEV,CACD,OAAOmkD,CACV,EACD,KAAM,KAAK,KACX,cAAexkK,GAAS,CACpB,IAAIhJ,EACJ,MAAO,CACH,MAAOA,EAAKgJ,EAAM,QAAU,MAAQhJ,IAAO,OAAS,OAASA,EAAG,IACxF,CACiB,CACjB,CAAa,CACb,CACK,EACD,uBAAwB,CACpB,MAAMkhB,EAAU,GAChB,OAAI,KAAK,QAAQ,UACbA,EAAQ,KAAKmqG,IAAS,CAClB,KAAM,KAAK,KACX,gBAAiB,KAAK,QAAQ,gBAC9B,SAAU,KAAK,QAAQ,QAC1B,EAAC,EAEF,KAAK,QAAQ,cAAgB,IAC7BnqG,EAAQ,KAAKg/I,IAAa,CACtB,KAAM,KAAK,IACd,EAAC,EAEF,KAAK,QAAQ,aACbh/I,EAAQ,KAAK6rJ,IAAa,CACtB,OAAQ,KAAK,OACb,gBAAiB,KAAK,QAAQ,gBAC9B,KAAM,KAAK,IACd,EAAC,EAEC7rJ,CACV,CACL,CAAC,EClVKusJ,IAAuB,CAAC,QAAS,SAAU,UAAW,MAAM,EAE5DC,IAAwB1kK,IACtB,CAAE,KAAMA,EAAM,OAAO,IAAM,GAG7B2kK,IAA+B3kK,IAQpCA,EAAM,IAAK,EACJ0kK,IAAqB1kK,CAAK,GAG5BqkK,IAAOO,IAAW,OAAO,CAE9B,YAAa,OACZ,MAAO,CACN,IAAG5tK,EAAA,KAAK,SAAL,YAAAA,EAAA,WACH,aAAc,IACd,CACD,EAED,eAAgB,CACf,MAAO,CACN,KAAM,CACL,QAAS,IACT,EACD,MAAO,CACN,QAAS,IACT,CACD,CACD,EAED,UAAW,GAEX,UAAW,CACV,CACC,IAAK,UACL,SAAU4O,IAAQ,CACjB,KAAMu2J,GAAUv2J,CAAG,EACnB,MAAOA,EAAI,aAAa,OAAO,CACnC,EACG,CACD,EAED,WAAWnB,EAAS,CACnB,KAAM,CAAE,KAAAxI,CAAI,EAAKwI,EACX+/D,EAAM,IAAI,IAAIvoE,EAAK,MAAM,KAAM,OAAO,QAAQ,EAC9CqhH,EAAOmnD,IAAqB,SAASjgG,EAAI,QAAQ,EACpDy3F,GAAQhgK,EAAM,KAAK,QAAQ,YAAY,EACvC,IACH,MAAO,CAAC,IAAK,CACZ,GAAGA,EAAK,MACR,KAAAqhH,EACA,eAAgBrhH,EAAK,MAAM,KAC3B,IAAK,8BACL,EAAE,CAAC,CACJ,EAED,eAAgB,CAEf,MAAO,CACN+8C,GAAc,CACb,KAHqB,8CAIrB,KAAM,KAAK,KACX,cAAe2rH,GACnB,CAAI,CACD,CACD,EAED,uBAAwB,CAQvB,MAAO,CACN,GARe,KAAK,OAAQ,EAE3B,OAAO,CAAC,CAAE,IAAA/uK,KACH,CAACA,EAAI,WAAW,iBAAiB,GAAK,CAACA,EAAI,WAAW,qBAAqB,CAClF,EAKDwoK,IAAc,CACd,CAED,CACF,CAAC,EC9FKjjB,IAAa,+CAIbe,IAAa,+CAKb2oB,IAASlpK,GAAK,OAAO,CACvB,KAAM,SACN,YAAa,CACT,MAAO,CACH,eAAgB,CAAE,CAC9B,CACK,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,GACR,EACD,CACI,IAAK,KACR,EACD,CACI,IAAK,QACR,EACD,CACI,MAAO,kBACP,UAAW,GACX,SAAUqK,GAAUA,EAAM,SAAS,cAAc,EAAI,CAAE,EAAG,EAC7D,CACb,CACK,EACD,WAAW,CAAE,eAAA+iC,GAAkB,CAC3B,MAAO,CAAC,IAAK3G,GAAgB,KAAK,QAAQ,eAAgB2G,CAAc,EAAG,CAAC,CAC/E,EACD,aAAc,CACV,MAAO,CACH,UAAW,IAAM,CAAC,CAAE,SAAA7D,KACTA,EAAS,QAAQ,KAAK,IAAI,EAErC,aAAc,IAAM,CAAC,CAAE,SAAAA,KACZA,EAAS,WAAW,KAAK,IAAI,EAExC,YAAa,IAAM,CAAC,CAAE,SAAAA,KACXA,EAAS,UAAU,KAAK,IAAI,CAEnD,CACK,EACD,sBAAuB,CACnB,MAAO,CACH,cAAe,IAAM,KAAK,OAAO,SAAS,aAAc,CACpE,CACK,EACD,eAAgB,CACZ,MAAO,CACH8T,GAAc,CACV,KAAMmiG,IACN,KAAM,KAAK,IAC3B,CAAa,CACb,CACK,EACD,eAAgB,CACZ,MAAO,CACH//F,GAAc,CACV,KAAM8gG,IACN,KAAM,KAAK,IAC3B,CAAa,CACb,CACK,CACL,CAAC,ECrEc4oB,QAAa,OAAO,CAElC,WAAY,CACX,MAAO,CACN,CACC,IAAK,GACL,EACD,CACC,IAAK,KACL,EACD,CACC,IAAK,QACL,EACD,CACC,MAAO,kBACP,SAAUjvK,GAASA,IAAU,cAC7B,CACD,CACD,EAED,YAAa,CACZ,MAAO,CAAC,IAAK,CAAC,CACd,EAGD,WAAY,CACX,KAAM,KACN,MAAO,KACP,QAAS,GACT,yBAA0B,EAC1B,CACF,CAAC,ECjCKktK,GAAiB,uDAIjBC,GAAiB,uDAIjBC,GAAuB,+CAIvBC,GAAuB,+CAKvB6B,IAAOppK,GAAK,OAAO,CACrB,KAAM,OACN,YAAa,CACT,MAAO,CACH,eAAgB,CAAE,CAC9B,CACK,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,QACR,EACD,CACI,IAAK,IACL,SAAUzE,GAAQA,EAAK,MAAM,aAAe,UAAY,IAC3D,EACD,CACI,MAAO,cACP,SAAUrB,GAAS,4BAA4B,KAAKA,CAAK,GAAK,IACjE,CACb,CACK,EACD,WAAW,CAAE,eAAAkzC,GAAkB,CAC3B,MAAO,CAAC,SAAU3G,GAAgB,KAAK,QAAQ,eAAgB2G,CAAc,EAAG,CAAC,CACpF,EACD,aAAc,CACV,MAAO,CACH,QAAS,IAAM,CAAC,CAAE,SAAA7D,KACPA,EAAS,QAAQ,KAAK,IAAI,EAErC,WAAY,IAAM,CAAC,CAAE,SAAAA,KACVA,EAAS,WAAW,KAAK,IAAI,EAExC,UAAW,IAAM,CAAC,CAAE,SAAAA,KACTA,EAAS,UAAU,KAAK,IAAI,CAEnD,CACK,EACD,sBAAuB,CACnB,MAAO,CACH,QAAS,IAAM,KAAK,OAAO,SAAS,WAAY,EAChD,QAAS,IAAM,KAAK,OAAO,SAAS,WAAY,CAC5D,CACK,EACD,eAAgB,CACZ,MAAO,CACH8T,GAAc,CACV,KAAM+pH,GACN,KAAM,KAAK,IAC3B,CAAa,EACD/pH,GAAc,CACV,KAAMiqH,GACN,KAAM,KAAK,IAC3B,CAAa,CACb,CACK,EACD,eAAgB,CACZ,MAAO,CACH7nH,GAAc,CACV,KAAM4nH,GACN,KAAM,KAAK,IAC3B,CAAa,EACD5nH,GAAc,CACV,KAAM8nH,GACN,KAAM,KAAK,IAC3B,CAAa,CACb,CACK,CACL,CAAC,EClFK8B,IAASD,IAAK,OAAO,CAC1B,KAAM,SAEN,eAAgB,CACf,MAAO,CACN/rH,GAAc,CACb,KAAM+pH,GACN,KAAM,KAAK,IACf,CAAI,CACD,CACD,EAED,eAAgB,CACf,MAAO,CACN3nH,GAAc,CACb,KAAM4nH,GACN,KAAM,KAAK,IACf,CAAI,CACD,CACD,CACF,CAAC,ECtBKiC,IAAYtpK,GAAK,OAAO,CAC1B,KAAM,YACN,YAAa,CACT,MAAO,CACH,eAAgB,CAAE,CAC9B,CACK,EACD,WAAY,CACR,MAAO,CACH,CACI,IAAK,GACR,EACD,CACI,MAAO,kBACP,UAAW,GACX,SAAUqK,GAAUA,EAAM,SAAS,WAAW,EAAI,CAAE,EAAG,EAC1D,CACb,CACK,EACD,WAAW,CAAE,eAAA+iC,GAAkB,CAC3B,MAAO,CAAC,IAAK3G,GAAgB,KAAK,QAAQ,eAAgB2G,CAAc,EAAG,CAAC,CAC/E,EACD,aAAc,CACV,MAAO,CACH,aAAc,IAAM,CAAC,CAAE,SAAA7D,KACZA,EAAS,QAAQ,KAAK,IAAI,EAErC,gBAAiB,IAAM,CAAC,CAAE,SAAAA,KACfA,EAAS,WAAW,KAAK,IAAI,EAExC,eAAgB,IAAM,CAAC,CAAE,SAAAA,KACdA,EAAS,UAAU,KAAK,IAAI,CAEnD,CACK,EACD,sBAAuB,CACnB,MAAO,CACH,QAAS,IAAM,KAAK,OAAO,SAAS,gBAAiB,EACrD,QAAS,IAAM,KAAK,OAAO,SAAS,gBAAiB,CACjE,CACK,CACL,CAAC,ECtCK+/H,IAAYC,IAAgB,OAAO,CAExC,WAAY,CACX,MAAO,CACN,CACC,IAAK,GACL,EACD,CACC,MAAO,kBACP,SAAUrvK,GAASA,IAAU,WAC7B,CACD,CACD,EAED,YAAa,CACZ,MAAO,CAAC,IAAK,CAAC,CACd,EAED,WAAY,CACX,KAAM,KACN,MAAO,KACP,QAAS,GACT,yBAA0B,EAC1B,EAED,eAAgB,CACf,MAAO,CACNmjD,GAAc,CACb,KAAMiqH,GACN,KAAM,KAAK,IACf,CAAI,CACD,CACD,EAED,eAAgB,CACf,MAAO,CACN7nH,GAAc,CACb,KAAM8nH,GACN,KAAM,KAAK,IACf,CAAI,CACD,CACD,CAEF,CAAC,ECzCKC,IAASgC,IAAa,OAAO,CAClC,KAAM,IACP,CAAC,ECoCDjqB,GAAS,cAAc,YAAa,SAAS,EAE7C,MAAekqB,IAAA57H,GAAU,OAAO,CAC/B,KAAM,WAEN,YAAa,CACZ,MAAO,CACN,QAAS,GACT,WAAY,CAAE,EACd,UAAW,KACX,aAAc,KACd,WAAY,EACZ,CACD,EAED,eAAgB,CACf,MAAM67H,EAAoB,CACzB,KAAK,QAAQ,QAAUpvC,IAAW,KAClCxvD,IACA8wD,GACA4oC,IACA9L,IACAG,IACAwQ,IACA7B,IACA0B,IACAzpB,IACAW,IACAI,IACAG,IAAU,UAAU,CACnB,SAAApB,GACA,gBAAiB,WACrB,CAAI,EACD+E,IACA1E,IACAkb,IACAuJ,IACA3kB,GACA,KAAK,QAAQ,QAAUqX,IAAgBroF,GACvCk4F,IACAZ,IACA/lB,IACA6lB,IAAQ,UAAU,CACjB,WAAY,KAAK,QAAQ,UAC7B,CAAI,EACDwD,IACA57F,IACA8uF,IACAvX,IACAwT,IACAgE,IACAhF,IACAqL,IACAsB,IACA12D,GAAM,UAAU,CACf,WAAY4pD,IAAiB,CACjC,CAAI,EACD+I,IACAqI,IAAK,UAAU,CACd,YAAa,GACb,SAAU/mD,GAAQ,eAAe,KAAKA,CAAI,EAC1C,aAAc,KAAK,QAAQ,YAC/B,CAAI,EACDihD,IACA,KAAK,QAAQ,QACV+C,IAAY,UAAU,CACvB,YAAazpK,GAAE,OAAQ,mDAAuD,CACnF,CAAK,EACC,KACH6qK,GACA,EACK4C,EAA2B,KAAK,QAAQ,WAAW,IAAIt4J,GAAKA,EAAE,IAAI,EACxE,MAAO,CACN,GAAGq4J,EAAkB,OAAOr4J,GAAKA,GAAK,CAACs4J,EAAyB,SAASt4J,EAAE,IAAI,CAAC,EAChF,GAAG,KAAK,QAAQ,UAChB,CACD,CAEF,CAAC","names":["spawnDialog","dialog","props","onClose","el","vue","Vue","h2","rest","v","toRaw","IconMove","IconCopy","__defProp","__defNormalProp","obj","key","value","__publicField","FilePickerType","FilePickerType2","FilePickerClosed","FilePicker","title","multiSelect","mimeTypeFilter","directoriesAllowed","buttons","path","filter","container","disabledNavigation","FilePickerVue","__vitePreload","resolve","reject","_a","nodes","node","FilePickerBuilder","ms","button","factory","type","_b","_c","target","basename","label","t","n","allow","getFilePickerBuilder","OrderedMap","content","i","found","newKey","self","place","without","f","map","result","prop","findDiffStart","a","b","pos","childA","childB","j","inner","findDiffEnd","posA","posB","iA","iB","size","same","minSize","Fragment","from","to","nodeStart","parent","child","end","start","blockSeparator","leafText","text","first","nodeText","other","last","index","current","copy","p","otherPos","round","retIndex","curPos","cur","schema","array","joined","offset","compareDeep","Mark$1","Mark","attrs","set","placed","_","json","mark","marks","ReplaceError","Slice","openStart","openEnd","fragment","insertInto","removeRange","openIsolating","indexTo","offsetTo","dist","insert","replace","$from","$to","slice","replaceOuter","depth","close","prepareSliceForReplace","replaceThreeWay","replaceTwoWay","checkJoin","main","sub","joinable","$before","$after","addNode","addRange","$start","$end","startIndex","endIndex","$along","extra","ResolvedPos","parentOffset","val","dOff","tmp","after","next","pred","d","NodeRange","str","doc","rem","cache","resolveCache","elt","ResolveCache","resolveCacheSize","emptyAttrs","Node$1","Node","startPos","includeParents","name","wrapMarks","match","replacement","one","two","m","TextNode","base","ContentMatch","validEnd","string","nodeTypes","stream","TokenStream","expr","parseExpr","dfa","nfa","checkForDeadEnds","frag","toEnd","seen","search","types","finished","tp","computed","active","scan","out","tok","exprs","parseExprSeq","parseExprSubscript","parseExprAtom","parseExprRange","parseNum","min","max","resolveName","typeName","connect","compile","edge","term","edges","loop","cmp","nullFrom","labeled","explore","states","state","work","dead","defaultAttrs","defaults","attrName","attr","computeAttrs","built","given","checkAttrs","values","initAttrs","Attribute","NodeType$1","NodeType","spec","before","matched","markType","topType","validateType","options","MarkType","rank","Schema","instanceSpec","contentExprCache","contentExpr","markExpr","gatherMarks","excl","ok","isTagRule","rule","isStyleRule","DOMParser$1","DOMParser","rules","matchedStyles","r","dom","context","ParseContext","matches","style","priority","blockTags","ignoreTags","listTags","OPT_PRESERVE_WS","OPT_PRESERVE_WS_FULL","OPT_OPEN_LEFT","wsOptionsFor","preserveWhitespace","NodeContext","solid","fill","wrap","parser","isOpen","topNode","topContext","topOptions","top","nodeBefore","domNodeBefore","matchAfter","ruleID","normalizeList","sync","oldNeedsBlock","innerMarks","styles","continueAfter","nodeType","startIn","contentDOM","route","cx","block","nodeMarks","markMayApply","preserveWS","applyMarks","textNode","parts","option","useRoot","minDepth","part","$context","deflt","prevItem","selector","DOMSerializer","keep","rendered","add","markDOM","renderSpec","inline","toDOM","structure","xmlNS","blockArraysIn","gatherToDOM","suspiciousAttributeCache","suspiciousAttributes","suspiciousAttributesInner","tagName","suspicious","space","innerContent","lower16","factor16","makeRecover","recoverIndex","recoverOffset","DEL_BEFORE","DEL_AFTER","DEL_ACROSS","DEL_SIDE","MapResult","delInfo","recover","StepMap","ranges","inverted","diff","assoc","simple","oldIndex","newIndex","oldSize","newSize","side","del","oldStart","newStart","Mapping","maps","mirror","mirrors","mapping","startSize","mirr","totalSize","inverse","corr","stepsByID","Step","id","stepClass","StepResult","failed","message","e","mapFragment","mapped","AddMarkStep","oldSlice","RemoveMarkStep","AddNodeMarkStep","updated","newSet","RemoveNodeMarkStep","ReplaceStep","contentBetween","ReplaceAroundStep","gapFrom","gapTo","gap","inserted","addMark","tr","removed","added","removing","adding","s","removeMark","step","toRemove","clearIncompatible","parentType","clearNewlines","replSteps","allowed","newline","canCut","liftTarget","range","lift","gapStart","gapEnd","splitting","findWrapping","innerRange","around","findWrappingOutside","findWrappingInside","withAttrs","outer","inside","innerMatch","wrappers","setBlockType","mapFrom","attrsHere","canChangeType","convertNewlines","pre","supportLinebreak","replaceLinebreaks","startM","endM","replaceNewlines","$pos","setNodeMarkup","newNode","canSplit","typesAfter","innerType","overrideChild","baseType","split","typeAfter","canJoin","joinPoint","dir","join","insertPoint","dropPoint","pass","bias","insertPos","fits","wrapping","replaceStep","fitsTrivially","Fitter","unplaced","fit","moveInline","placedSize","startDepth","sliceDepth","contentAt","frontierDepth","inject","openAtEnd","dropFromFragment","taken","openEndCount","closeNodeStart","addToFragment","level","contentAfterFits","dropInner","count","open","invalidMarks","definesContent","replaceRange","targetDepths","coveredDepths","preferredTarget","preferredTargetIndex","leftNodes","preferredDepth","leftNode","def","openDepth","targetDepth","expand","closeFragment","startSteps","oldOpen","newOpen","replaceRangeWith","point","deleteRange","covered","AttrStep","DocAttrStep","TransformError","err","Transform","classesById","Selection","$anchor","$head","SelectionRange","lastNode","lastParent","selectionToInsertionEnd","textOnly","TextSelection","findSelectionIn","AllSelection","cls","selectionClass","warnedAboutTextSelection","checkTextSelection","TextBookmark","anchor","head","dPos","NodeSelection","deleted","NodeBookmark","sel","AllBookmark","startLen","_from","_to","_newFrom","newTo","UPDATED_SEL","UPDATED_MARKS","UPDATED_SCROLL","selection","time","inheritMarks","bind","FieldDesc","desc","baseFields","config","instance","_marks","_old","prev","Configuration","plugins","plugin","EditorState","ignore","rootTr","trs","newState","haveNew","oldState","newInstance","fields","field","Transaction","$config","pluginFields","bindProps","Plugin","createKey","keys","PluginKey","domIndex","parentNode","reusedRange","textRange","clearReusedRange","isEquivalentPosition","off","targetNode","targetOff","scanFor","atomElements","nodeSize","hasBlockDesc","textNodeBefore$1","textNodeAfter$1","isOnEdge","atStart","atEnd","selectionCollapsed","domSel","keyEvent","keyCode","event","deepActiveElement","caretFromPoint","x","y","nav","agent","ie_edge","ie_upto10","ie_11up","ie","ie_version","gecko","_chrome","chrome","chrome_version","safari","ios","mac","windows","android","webkit","webkit_version","windowRect","vp","getSide","clientRect","rect","scaleX","scaleY","scrollRectIntoView","view","startDOM","scrollThreshold","scrollMargin","atTop","bounding","moveX","moveY","startX","startY","dX","dY","storeScrollPos","refDOM","refTop","localRect","scrollStack","stack","resetScrollPos","newRefTop","restoreScrollStack","dTop","left","preventScrollSupported","focusPreventScroll","stored","findOffsetInNode","coords","closest","dxClosest","coordsClosest","rowBot","rowTop","firstBelow","coordsBelow","childIndex","rects","dx","findOffsetInText","len","singleRect","inRect","targetKludge","posFromElement","posFromCaret","outsideBlock","sawBlock","elementFromPoint","element","box","startI","posAtCoords","caret","nonZero","BIDI","coordsAtPos","atom","supportEmptyRange","rectBefore","rectAfter","flattenV","takeSide","flattenH","withFlushedState","viewState","endOfTextblockVertical","nearest","boxes","maybeRTL","endOfTextblockHorizontal","oldNode","oldOff","anchorNode","anchorOffset","oldBidiLevel","parentDOM","newOff","cachedState","cachedDir","cachedResult","endOfTextblock","NOT_DIRTY","CHILD_DIRTY","CONTENT_DIRTY","NODE_DIRTY","ViewDesc","children","widget","outerDeco","innerDeco","nodeName","domBefore","domAfter","onlyNodes","nodeDOM","TrailingHackViewDesc","WidgetViewDesc","enter","fromOffset","toOffset","childBase","root","force","anchorDOM","headDOM","brKludge","domSelExtended","mutation","startInside","endInside","dirty","stop","CompositionViewDesc","textDOM","mut","MarkViewDesc","custom","replaceNodes","NodeViewDesc","descObj","applyOuterDeco","CustomNodeViewDesc","TextViewDesc","sameOuterDeco","composition","localComposition","compositionInChild","updater","ViewTreeUpdater","iterDeco","insideNode","compIndex","renderDescs","iosHacks","textPos","findTextInFragment","needsWrap","oldDOM","patchOuterDeco","computeOuterDeco","docViewDesc","docView","skip","descs","written","childDOM","rm","OuterDecoLevel","noDeco","outerDOM","prevComputed","curComputed","curDOM","deco","patchAttributes","prevList","curList","lock","preMatch","maxKeep","markDesc","targetDesc","domNode","nextDOM","locked","wrapper","ch","lastChild","hack","parentDesc","curDesc","descI","fI","compareSide","onWidget","onNode","locals","decoIndex","restNode","parentIndex","widgets","cutAt","oldCSS","childStart","selectionFromDOM","origin","nearestDesc","inWidget","nearestDescNode","selectionBetween","editorOwnsSelection","hasSelection","selectionToDOM","syncNodeSelection","curSel","selectCursorWrapper","resetEditableFrom","resetEditableTo","brokenSelectBetweenUneditable","temporarilyEditableNear","resetEditable","removeClassOnSelectionChange","setEditable","img","clearNodeSelection","hasFocusAndSelection","anchorInRightPlace","moveSelectionBlock","$side","apply","selectHorizontally","mods","$newHead","nodePos","nodeLen","isIgnorable","skipIgnoredNodes","skipIgnoredNodesBefore","skipIgnoredNodesAfter","moveNode","moveOffset","isBlockNode","setSelFocus","textNodeAfter","textNodeBefore","findDirection","mid","selectVertically","beyond","stopNativeHorizontalDelete","empty","nextNode","switchEditable","safariDownArrowBug","focusNode","focusOffset","getMods","captureKeyDown","code","serializeForClipboard","serializer","detachedDoc","firstChild","wrapMap","parseFromClipboard","html","plainText","inCode","asText","parsed","readHTML","restoreReplacedSpaces","contextNode","sliceData","inlineParents","addContext","closeSlice","normalizeSiblings","lastWrap","inLast","addToSibling","closeRight","wrapped","withWrappers","sibling","closeRange","_detachedDoc","metas","firstTag","handlers","editHandlers","passiveHandlers","InputState","initInput","handler","eventBelongsToView","runCustomHandler","ensureListeners","setSelectionOrigin","destroyInput","currentHandlers","dispatchEvent","_event","inOrNearComposition","now","eventCoords","isNear","click","dy","runHandlerOnContext","propName","updateSelection","selectClickedLeaf","selectClickedNode","selectedNode","selectAt","handleSingleClick","selectNode","handleDoubleClick","handleTripleClick","defaultTripleClick","forceDOMFlush","endComposition","selectNodeModifier","flushed","MouseDown","targetPos","timeoutComposition","scheduleComposeEnd","delay","clearComposition","timestampFromCustomEvent","findCompositionNode","textBefore","textAfter","descAfter","lastChanged","descBefore","forceUpdate","captureCopy","brokenClipboardAPI","cut","data","sliceSingleNode","capturePaste","plain","doPaste","preferPlain","singleNode","getText","clipboardData","uris","Dragging","move","dragCopyModifier","mouseDown","draggedSlice","dragging","eventPos","$mouse","isNode","beforeInsert","domChangeCount","$cursor","compareObjs","WidgetType","noSpec","span","oldOffset","Decoration","InlineType","none","DecorationSet","local","decorations","buildTree","predicate","childOff","newLocal","mapChildren","byPos","childNode","childOffset","baseOffset","takeSpansForNode","moveSpans","withoutNulls","dec","localSet","DecorationGroup","removeOverlap","members","mappedDecos","member","sorted","oldChildren","moved","oldEnd","newEnd","dSize","mustRebuild","fromLocal","toLocal","mapAndGatherRemainingDecorations","spans","gather","hasNulls","localStart","subtree","working","insertAhead","viewDecorations","observeOptions","useCharData","SelectionState","DOMObserver","handleDOMChange","mutations","take","ancestors","newSel","typeOver","brs","br","blockParent","readSel","checkCSS","previousSibling","nextSibling","cssChecked","cssCheckWarned","rangeToSelectionRange","currentAnchor","safariShadowSelectionRange","read","parseBetween","from_","to_","find","startDoc","ruleFromNode","isInline","readDOMChange","addedNodes","compositionID","shared","parse","compare","preferredPos","preferredSide","change","findDiff","resolveSelection","$fromA","inlineChange","nextSel","looksLikeBackspace","chFrom","chTo","storedMarks","markChange","isMarkChange","parsedSel","curMarks","prevMarks","update","old","$newStart","$newEnd","skipClosingAndOpening","$next","fromEnd","mayOpen","endA","endB","adjust","isSurrogatePair","EditorView","checkStateComponent","getEditable","updateCursorWrapper","buildNodeViews","computeDocDeco","prevProps","redraw","updateSel","pluginsChanged","nodeViews","changedNodeViews","scroll","updateDoc","oldScrollPos","forceSelUpdate","selectionContextChanged","chromeKludge","prevState","pluginView","movedPos","cached","dispatchTransaction","sel1","sel2","nA","nB","shift","brokenModifierNames","keyName","ignoreKey","normalizeKeyName","alt","ctrl","meta","mod","normalize","modifiers","keymap","bindings","keydownHandler","baseName","direct","noShift","fromCode","deleteSelection","dispatch","atBlockStart","joinBackward","$cut","findCutBefore","deleteBarrier","textblockAt","delStep","joinTextblockBackward","joinTextblocksAround","joinTextblockForward","atBlockEnd","findCutAfter","beforeText","beforePos","afterText","afterPos","only","selectNodeBackward","joinForward","selectNodeForward","joinUp","nodeSel","joinDown","newlineInCode","defaultBlockAt","exitCode","above","createParagraphNear","liftEmptyBlock","selectParentNode","joinMaybeClear","conn","isolated","canDelAfter","joinAt","selAfter","at","afterDepth","selectTextblockSide","selectTextblockStart","selectTextblockEnd","wrapIn","applicable","wrapInList","listType","doJoin","outerRange","$insert","doWrapInList","joinBefore","splitDepth","splitPos","liftListItem","itemType","liftToOuterList","liftOutOfList","endOfList","list","item","indexBefore","sinkListItem","nestedBefore","createChainableState","transaction","CommandManager","rawCommands","editor","command","args","callback","startTr","shouldDispatch","callbacks","hasStartTransaction","run","chain","EventEmitter","fn","getExtensionField","extension","splitExtensions","extensions","baseExtensions","nodeExtensions","markExtensions","getAttributesFromExtensions","extensionAttributes","nodeAndMarkExtensions","defaultAttribute","addGlobalAttributes","globalAttribute","attribute","addAttributes","attributes","mergedAttr","getNodeType","nameOrType","mergeAttributes","objects","items","mergedAttributes","valueClasses","existingClasses","insertClasses","valueClass","newStyles","existingStyles","styleMap","property","getRenderedAttributes","nodeOrMark","isFunction","callOrReturn","isEmptyObject","fromString","injectExtensionAttributesToParseRule","parseRule","oldAttributes","newAttributes","cleanUpSchemaItem","getSchemaByResolvedExtensions","allAttributes","extraNodeFields","extendNodeSchema","extensionAttribute","parseHTML","renderHTML","renderText","extraMarkFields","extendMarkSchema","getSchemaTypeByName","isExtensionRulesEnabled","enabled","enabledExtension","getTextContentFromNodes","maxMatch","sliceEndPos","chunk","isRegExp","InputRule","inputRuleMatcherHandler","inputRuleMatch","run$1","commands","can","inputRulesPlugin","simulatedInputMeta","getType","isPlainObject","mergeDeep","source","output","extendedConfig","currentPos","currentMarks","isNumber","PasteRule","pasteRuleMatcherHandler","pasteRuleMatch","pasteEvent","dropEvent","resolvedFrom","resolvedTo","textToMatch","createClipboardPasteEvent","pasteRulesPlugin","dragSourceElement","isPastedFromProseMirror","isDroppedFromProseMirror","processEvent","pasteEvt","chainableState","handleDragstart","_view","transactions","isPaste","isDrop","simulatedPasteMeta","isSimulatedPaste","findDuplicates","filtered","ExtensionManager","resolvedExtensions","duplicatedNames","addExtensions","priorityA","priorityB","addCommands","inputRules","pasteRules","allPlugins","addKeyboardShortcuts","defaultBindings","shortcut","method","keyMapPlugin","addInputRules","addPasteRules","addProseMirrorPlugins","proseMirrorPlugins","addNodeView","nodeview","getPos","innerDecorations","HTMLAttributes","onBeforeCreate","onCreate","onUpdate","onSelectionUpdate","onTransaction","onFocus","onBlur","onDestroy","Extension","getTextBetween","startNode","textSerializers","textSerializer","getTextSerializersFromSchema","ClipboardTextSerializer","blur","clearContent","emitUpdate","clearNodes","$mappedFrom","$mappedTo","nodeRange","targetLiftDepth","defaultType","createParagraphNear$1","originRange","contentSlice","newPos","deleteCurrentNode","currentNode","deleteNode","typeOrName","deleteSelection$1","exitCode$1","objectIncludes","object1","object2","findMarkInSet","isMarkInSet","getMarkRange","endPos","getMarkType","extendMarkRange","newSelection","isTextSelection","minMax","resolveFocusPosition","position","selectionAtStart","selectionAtEnd","minPos","maxPos","isiOS","focus","delayedFocus","isSameSelection","forEach","insertContent","removeWhitespaces","elementFromString","wrappedValue","createNodeFromContent","isJSONContent","isTextContent","error","hasInvalidContent","invalidContent","contentCheckSchema","isFragment","nodeOrFragment","insertContentAt","isOnlyTextContent","isOnlyBlockContent","newContent","joinUp$1","joinDown$1","joinBackward$1","joinForward$1","joinItemBackward","joinItemForward","joinTextblockBackward$1","joinTextblockForward$1","isMacOS","keyboardShortcut","capturedTransaction","newStep","isNodeActive","nodeRanges","relativeFrom","relativeTo","selectionRange","matchedNodeRanges","sum","lift$1","liftEmptyBlock$1","liftListItem$1","newlineInCode$1","getSchemaTypeNameByName","deleteProps","propOrProps","newObj","resetAttributes","schemaType","scrollIntoView","selectAll","selectNodeBackward$1","selectNodeForward$1","selectParentNode$1","selectTextblockEnd$1","selectTextblockStart$1","createDocument","parseOptions","setContent","document","getMarkAttributes","markItem","combineTransactionSteps","oldDoc","transform","findChildren","nodesWithPos","findChildrenInRange","findParentNodeClosestToPos","findParentNode","getHTMLFromFragment","documentFragment","getSchema","generateJSON","getNodeAttributes","nodeItem","getAttributes","removeDuplicates","by","simplifyChangedRanges","changes","uniqueChanges","otherChange","getChangedRanges","steps","stepMap","getMarksBetween","getSplittedAttributes","isMarkActive","markRanges","matchedRange","markRange","excludedRange","isActive","isList","group","isNodeEmpty","checkChildren","ignoreWhitespace","isContentEmpty","isNodeSelection","posToDOMRect","resolvedEnd","bottom","right","width","height","canSetMark","newMarkType","cursor","someNodeSupportsMark","_pos","parentAllowsMarkType","currentMarksAllowMarkType","otherMark","setMark","trimmedFrom","trimmedTo","setMeta","setNode","updatedState","setNodeSelection","setTextSelection","sinkListItem$1","ensureMarks","splittableMarks","filteredMarks","splitBlock","keepMarks","$first","splitListItem","overrideAttrs","grandParent","depthBefore","depthAfter","newNextTypeAttributes","nextType","newTypeAttributes","joinListBackwards","joinListForwards","nodeAfter","toggleList","listTypeOrName","itemTypeOrName","parentList","canWrapInList","toggleMark","extendEmptyMarkRange","toggleNode","toggleTypeOrName","toggleType","attributesToCopy","toggleWrap","undoInputRule","undoable","toUndo","unsetAllMarks","unsetMark","updateAttributes","wrapIn$1","wrapInList$1","Commands","Drop","Editable","FocusEvents","Keymap","handleBackspace","$parentPos","parentIsIsolating","parentPos","isAtStart","handleDelete","baseKeymap","pcKeymap","macKeymap","docChanges","ignoreTr","allFrom","allEnd","Paste","Tabindex","NodePos","isBlock","childNodePos","nodeAttributes","attrKeys","firstItemOnly","childPos","oldSelection","createStyleTag","nonce","suffix","tiptapStyleTag","styleNode","editable","handlePlugins","nameOrPluginKey","allExtensions","ext","selectionHasChanged","nameOrAttributes","attributesOrUndefined","markInputRule","captureGroup","fullMatch","startSpaces","textStart","textEnd","markEnd","nodeInputRule","matchStart","lastChar","insertionStart","textblockTypeInputRule","wrappingInputRule","blockRange","isAndroid","NodeView","component","_d","_e","_f","_g","dragHandle","domBox","handleBox","offsetX","offsetY","isDragEvent","isDropEvent","isEditable","isDragging","isDraggable","isSelectable","isCopyEvent","isPasteEvent","isCutEvent","isClickEvent","markPasteRule","escapeForRegEx","auto","basePlacements","clippingParents","viewport","popper","reference","variationPlacements","acc","placement","placements","beforeRead","afterRead","beforeMain","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","OwnElement","isHTMLElement","isShadowRoot","applyStyles","_ref","effect","_ref2","initialStyles","styleProperties","applyStyles$1","getBasePlacement","getBoundingClientRect","includeScale","offsetHeight","offsetWidth","getLayoutRect","contains","rootNode","getComputedStyle","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","css","getOffsetParent","window","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","padding","arrow","_state$modifiersData$","arrowElement","popperOffsets","basePlacement","axis","isVertical","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","axisProp","_options$element","arrow$3","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","passive","_options$scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","hash","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","getViewportRect","visualViewport","getDocumentRect","_element$ownerDocumen","winScroll","body","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","isBody","updatedList","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","invertDistance","skidding","distance","_options$offset","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","order","visited","modifier","sort","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","pending","mergeByName","merged","existing","DEFAULT_OPTIONS","areValidElements","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","runModifierEffects","_state$elements","_state$orderedModifie","_state$orderedModifie2","_ref3$options","cleanupFn","noopFn","createPopper","BOX_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","TIPPY_DEFAULT_APPEND_TO","getValueAtIndexOrReturn","defaultValue","isType","invokeWithArgsOrReturn","timeout","arg","splitBySpaces","normalizeToArray","pushIfUnique","arr","unique","arrayFrom","removeUndefinedProps","div","isNodeList","isMouseEvent","isReferenceElement","getArrayOfElements","setTransitionDuration","els","setVisibilityState","getOwnerDocument","elementOrElements","_normalizeToArray","isCursorOutsideInteractiveBorder","popperTreeData","clientX","clientY","popperState","interactiveBorder","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","updateTransitionEndListener","action","listener","actualContains","_target$getRootNode","currentInput","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","activeElement","bindGlobalEventListeners","isBrowser","isIE11","pluginProps","renderProps","defaultProps","defaultKeys","setDefaultProps","partialProps","getExtendedPassedProps","passedProps","_name","getDataAttributeProps","propKeys","valueAsString","evaluateProps","innerHTML","dangerouslySetInnerHTML","createArrowElement","getChildren","boxChildren","render","nextProps","_getChildren","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","lastTriggerEvent","currentTransitionEndListener","onFirstUpdate","listeners","debouncedOnMouseMove","onMouseMove","currentTarget","popperInstance","clearDelayTimeouts","setProps","show","hideWithInteractivity","enable","disable","unmount","destroy","_props$render","pluginsHooks","hasAriaExpanded","addListeners","handleAriaExpandedAttribute","handleStyles","invokeHook","scheduleShow","getDocument","getNormalizedTouchSettings","touch","getIsCustomTouchBehavior","getIsDefaultRenderFn","_instance$props$rende","getCurrentTarget","getDefaultTemplateChildren","getDelay","isShow","fromHide","hook","shouldInvokePropsHook","pluginHooks","_instance$props","handleAriaContentAttribute","aria","currentValue","nextValue","cleanupInteractiveMouseListeners","onDocumentPress","actualTarget","removeDocumentPress","onTouchMove","onTouchStart","addDocumentPress","onTransitionedOut","duration","onTransitionEnd","onTransitionedIn","on","eventType","onTrigger","onMouseLeave","onBlurOrFocusOut","removeListeners","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","getNestedPopperTree","_instance$popperInsta","shouldBail","createPopperInstance","destroyPopperInstance","_instance$props2","popperOptions","getReferenceClientRect","moveTransition","computedReference","tippyModifier","_getDefaultTemplateCh","mount","appendTo","_getNormalizedTouchSe","touchValue","touchDelay","nestedPopper","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","_getDefaultTemplateCh2","_instance$popperInsta2","_getDefaultTemplateCh3","_box","_content","isAlreadyHidden","_getDefaultTemplateCh4","tippy","targets","optionalProps","elements","instances","FloatingMenuView","tippyOptions","shouldShow","isRootDepth","isEmptyTextBlock","editorElement","editorIsAttached","FloatingMenuPlugin","isInstanceOf_1","isInstanceOf","isInteger_1","isInteger","isOneOf_1","isOneOf","allowedValues","isSymbol_1","isSymbol","__importDefault","this","exports","vue_1","require$$0","vuePropValidator","userValidator","typeValidators","validators","validator","errorMessage","require$$1","require$$2","require$$3","require$$4","util","validators_1","propOptionsGenerator","util_1","stringProp","boolean","booleanProp","number","numberProp","integer","integerProp","symbol","symbolProp","vueComponent","vueComponentProp","any","anyProp","arrayProp","object","objectProp","_function","functionProp","oneOf","getOneOfType","allowedTypes","oneOfProp","oneOfObjectKeys","oneOf_1","oneOfObjectKeysProp","oneOfTypes","oneOfTypesProp","instanceOf","instanceOfProp","isNegative_1","isNegative","isPositive_1","isPositive","isNonNegative_1","isNonNegative","isNonPositive_1","isNonPositive","string_1","boolean_1","number_1","integer_1","symbol_1","vueComponent_1","require$$5","any_1","require$$6","array_1","require$$7","object_1","require$$8","function_1","require$$9","require$$10","oneOfObjectKeys_1","require$$11","oneOfTypes_1","require$$12","instanceOf_1","require$$13","require$$14","require$$15","require$$16","require$$17","EditorContent","createElement","newElement","FloatingMenu","NodeViewContent","NodeViewWrapper","VueRenderer","Component","currentVueConstructor","originalSilent","nodeViewProps","VueNodeView","onDragStart","rerenderComponent","oldDecorations","oldInnerDecorations","VueNodeViewRenderer","OUTLINE_STATE","OUTLINE_ACTIONS","useOutlineStateMixin","useOutlineActions","_sfc_main","_sfc_render","_vm","_sfc_staticRenderFns","__component__","normalizeComponent","NcActionCaption","ActionGlobalMixin","GenRandomId","$event","NcActionRadio","NcActionSeparator","_sfc_main$1","NcReferenceWidget","URL_PATTERN","response","isPublic","getCurrentUser","axios","generateOcsUrl","getSharingToken","_sfc_render$1","_sfc_staticRenderFns$1","__component__$1","NcReferenceList","NcUserBubbleDiv","NcAvatar","NcPopover","url","RouterLink","NcUserBubble","useStore","store","textModule","useEditorMixin","mapState","heading","DEFAULT_ICON_SIZE","makeIcon","original","h","Loading","MDI_Loading","AlphabeticalVariant","MDI_AlphabeticalVariant","AlignHorizontalCenter","MDI_AlignHorizontalCenter","AlignHorizontalLeft","MDI_AlignHorizontalLeft","AlignHorizontalRight","MDI_AlignHorizontalRight","Close","MDI_Close","CodeBrackets","MDI_CodeBrackets","CodeTags","MDI_CodeTags","Danger","MDI_Danger","Delete","MDI_Delete","Document","MDI_Document","DotsHorizontal","MDI_DotsHorizontal","Emoticon","MDI_Emoticon","Folder","MDI_Folder","FormatBold","MDI_FormatBold","FormatSize","MDI_FormatSize","FormatHeader1","MDI_FormatHeader1","FormatHeader2","MDI_FormatHeader2","FormatHeader3","MDI_FormatHeader3","FormatHeader4","MDI_FormatHeader4","FormatHeader5","MDI_FormatHeader5","FormatHeader6","MDI_FormatHeader6","FormatIndentDecrease","MDI_FormatIndentDecrease","FormatIndentIncrease","MDI_FormatIndentIncrease","FormatItalic","MDI_FormatItalic","FormatListBulleted","MDI_FormatListBulleted","FormatListCheckbox","MDI_FormatListCheckbox","FormatListNumbered","MDI_FormatListNumbered","FormatQuote","MDI_FormatQuote","FormatStrikethrough","MDI_FormatStrikethrough","FormatUnderline","MDI_FormatUnderline","Help","MDI_Help","Image","MDI_Image","Info","MDI_Info","LinkIcon","MDI_Link","LinkOff","MDI_LinkOff","Paperclip","MDI_Paperclip","Positive","MDI_Positive","Redo","MDI_Redo","Shape","MDI_Shape","Table","MDI_Table","TableAddColumnAfter","MDI_TableAddColumnAfter","TableAddColumnBefore","MDI_TableAddColumnBefore","TableAddRowAfter","MDI_TableAddRowAfter","TableAddRowBefore","MDI_TableAddRowBefore","TableSettings","MDI_TableSettings","TranslateVariant","MDI_TranslateVariant","Undo","MDI_Undo","UnfoldMoreHorizontal","MDI_UnfoldMoreHorizontal","Upload","MDI_Upload","Warn","MDI_Warn","Web","MDI_Web","NcButton","TableOfContents","create","k","setIfUndefined","createT","res","dest","src","some","isArray","ObservableV2","map.create","map.setIfUndefined","set.create","observers","array.from","Observable","floor","abs","pow","isNegativeZero","BIT1","BIT2","BIT3","BIT4","BIT6","BIT7","BIT8","BITS5","BITS6","BITS7","BITS31","MAX_SAFE_INTEGER","num","math.floor","fromCharCode","toLowerCase","trimLeftRegex","trimLeft","fromCamelCaseRegex","fromCamelCase","separator","_encodeUtf8Polyfill","encodedString","buf","utf8TextEncoder","_encodeUtf8Native","encodeUtf8","utf8TextDecoder","Encoder","createEncoder","length","encoder","toUint8Array","uint8arr","verifyLen","bufferLen","math.max","writeUint8","writeVarUint","binary.BITS7","binary.BIT8","writeVarInt","math.isNegativeZero","binary.BITS6","binary.BIT7","_strBuffer","_maxStrBSize","_writeVarStringNative","string.utf8TextEncoder","writeVarUint8Array","string.encodeUtf8","_writeVarStringPolyfill","writeVarString","writeBinaryEncoder","append","writeUint8Array","uint8Array","cpos","leftCopyLen","math.min","rightCopyLen","writeOnDataView","dview","writeFloat32","writeFloat64","writeBigInt64","floatTestBed","isFloat32","writeAny","number.isInteger","math.abs","binary.BITS31","array.isArray","RleEncoder","writer","flushUintOptRleEncoder","UintOptRleEncoder","flushIntDiffOptRleEncoder","encodedDiff","IntDiffOptRleEncoder","StringEncoder","methodUnimplemented","unexpectedCase","errorUnexpectedEndOfArray","error.create","errorIntegerOutOfRange","Decoder","createDecoder","hasContent","decoder","readUint8Array","readVarUint8Array","readVarUint","readUint8","mult","number.MAX_SAFE_INTEGER","readVarInt","sign","_readVarStringPolyfill","remainingLen","nextLen","bytes","_readVarStringNative","string.utf8TextDecoder","readVarString","readFromDataView","dv","readFloat32","readFloat64","readBigInt64","readAnyLookupTable","readAny","RleDecoder","reader","UintOptRleDecoder","IntDiffOptRleDecoder","hasCount","StringDecoder","getRandomValues","rand","uint32","uuidv4Template","uuidv4","c","getUnixTime","undefinedToNull","VarStoragePolyfill","newValue","_localStorage","usePolyfill","varStorage","onChange","eventHandler","offChange","assign","results","isEmpty","_k","every","hasProperty","equalFlat","callAll","fs","equalityStrict","equalityDeep","object.length","object.hasProperty","process","params","computeParams","pargs","currParamName","parg","kv","string.fromCamelCase","hasParam","getVariable","conditions.undefinedToNull","define_process_env_default","storage.varStorage","hasConf","forceColor","f.isOneOf","supportsColor","createUint8ArrayFromLen","createUint8ArrayViewFromArrayBuffer","buffer","byteOffset","createUint8ArrayFromArrayBuffer","toBase64Browser","string.fromCharCode","toBase64Node","Buffer","fromBase64Browser","fromBase64Node","toBase64","env.isBrowser","fromBase64","copyUint8Array","newBuf","Pair","mapToStyleString","map.map","createTimeoutClass","clearFunction","timeoutId","Timeout","BOLD","symbol.create","UNBOLD","BLUE","GREY","GREEN","RED","PURPLE","ORANGE","UNCOLOR","computeNoColorLoggingArgs","strBuilder","logArgs","_browserStyleMap","common.BOLD","pair.create","common.UNBOLD","common.BLUE","common.GREEN","common.GREY","common.RED","common.PURPLE","common.ORANGE","common.UNCOLOR","computeBrowserLoggingArgs","currentStyle","dom.mapToStyleString","computeLoggingArgs","env.supportsColor","common.computeNoColorLoggingArgs","print","vconsoles","vc","warn","createIterator","iteratorFilter","iterator","iteratorMap","fmap","done","DeleteItem","clock","DeleteSet","iterateDeletedStructs","ds","deletes","clientid","structs","iterateStructs","findIndexDS","dis","midindex","midclock","isDeleted","sortAndMergeDeleteSet","dels","mergeDeleteSets","dss","dssI","delsLeft","client","array.appendTo","addToDeleteSet","createDeleteSet","createDeleteSetFromStructStore","ss","dsitems","struct","writeDeleteSet","encoding.writeVarUint","readDeleteSet","numClients","decoding.readVarUint","numberOfDeletes","dsField","readAndApplyDeleteSet","unappliedDS","getState","clockEnd","findIndexSS","splitItem","UpdateEncoderV2","generateNewClientId","random.uint32","Doc","guid","random.uuidv4","collectionid","gc","gcFilter","autoLoad","shouldLoad","StructStore","promise.create","provideSyncedPromise","isSynced","transact","TypeConstructor","AbstractType","Constr","YArray","YText","YMap","YXmlElement","YXmlFragment","subdoc","DSDecoderV1","UpdateDecoderV1","createID","decoding.readUint8","decoding.readVarString","decoding.readAny","buffer.copyUint8Array","decoding.readVarUint8Array","DSDecoderV2","UpdateDecoderV2","decoding.IntDiffOptRleDecoder","decoding.UintOptRleDecoder","decoding.RleDecoder","decoding.StringDecoder","ID","keyClock","DSEncoderV1","encoding.createEncoder","encoding.toUint8Array","UpdateEncoderV1","info","encoding.writeUint8","encoding.writeVarString","isYKey","encoding.writeAny","encoding.writeVarUint8Array","embed","DSEncoderV2","error.unexpectedCase","encoding.IntDiffOptRleEncoder","encoding.UintOptRleEncoder","encoding.RleEncoder","encoding.StringEncoder","encoding.writeUint8Array","writeStructs","startNewStructs","firstStruct","writeClientsStructs","_sm","sm","getStateVector","_clock","readClientsStructRefs","clientRefs","numOfStateUpdates","numberOfStructs","refs","binary.BITS5","GC","Skip","cantCopyParentInfo","Item","binary.BIT6","readItemContent","integrateStructs","clientsStructRefs","clientsStructRefsIds","getNextStructTarget","nextStructsTarget","curStructsTarget","restStructs","missingSV","updateMissingSv","mclock","stackHead","addStackToRestSS","unapplicableItems","missing","structRefs","writeStructsFromTransaction","readUpdateV2","ydoc","transactionOrigin","structDecoder","retry","mergeUpdatesV2","dsRest","pendingDSUpdate","decoding.createDecoder","dsRest2","applyUpdateV2","YDecoder","applyUpdate","writeStateAsUpdate","targetStateVector","encodeStateAsUpdateV2","encodedTargetStateVector","decodeStateVector","updates","diffUpdateV2","mergeUpdates","convertUpdateFormatV2ToV1","encodeStateAsUpdate","readStateVector","ssLength","decodedState","writeStateVector","sv","writeDocumentStateVector","encodeStateVectorV2","encodeStateVector","EventHandler","createEventHandler","addEventHandlerListener","removeEventHandlerListener","l","g","callEventHandlerListeners","arg0","arg1","f.callAll","compareIDs","findRootTypeKey","isParentOf","RelativePosition","tname","createRelativePositionFromJSON","AbsolutePosition","createAbsolutePosition","createRelativePosition","typeid","createRelativePositionFromTypeIndex","createAbsolutePositionFromRelativePosition","rpos","followUndoneDeletions","rightID","typeID","followRedone","getItem","ContentType","compareRelativePositions","Snapshot","createSnapshot","snapshot","isVisible","splitSnapshotAffectedStructs","getItemCleanStart","_item","lastStruct","addStruct","findIndexCleanStart","getItemCleanEnd","replaceStruct","newStruct","clockStart","writeUpdateMessageFromTransaction","map.any","addChangedTypeToTransaction","parentSub","tryToMergeWithLefts","tryGcDeleteSet","deleteItems","di","deleteItem","endDeleteItemClock","si","tryMergeDeleteSet","mostRightIndexToCheck","cleanupTransactions","transactionCleanups","mergeStructs","subs","itemtype","events","event1","event2","cleanupYTextAfterTransaction","beforeClock","firstChangePos","replacedStructPos","logging.print","logging.ORANGE","logging.BOLD","logging.UNBOLD","logging.RED","subdocsAdded","subdocsLoaded","subdocsRemoved","initialCall","finishCleanup","StackItem","deletions","insertions","clearUndoManagerStackItem","um","stackItem","keepItem","popStackItem","undoManager","_tr","scope","itemsToRedo","itemsToDelete","performedChange","redoItem","subProps","changedParentTypes","UndoManager","typeScope","captureTimeout","captureTransaction","deleteFilter","trackedOrigins","ignoreRemoteMapChanges","undoing","redoing","endClock","startClock","time.getUnixTime","didAdd","lastOp","changeEvent","ytypes","ytype","yt","logging.warn","clearUndoStack","clearRedoStack","lazyStructReaderGenerator","LazyStructReader","filterSkips","LazyStructWriter","encodeStateVectorFromUpdateV2","YEncoder","updateDecoder","curr","currClient","stopCounting","currClock","enc","encoding.writeBinaryEncoder","encodeStateVectorFromUpdate","sliceStruct","leftItem","updateDecoders","lazyStructDecoders","currWrite","updateEncoder","lazyStructEncoder","dec1","dec2","clockDiff","currDecoder","firstClient","iterated","writeStructToLazyStructWriter","finishLazyStructWriting","lazyStructWriter","svClock","flushLazyStructWriter","lazyWriter","restEncoder","partStructs","convertUpdateFormat","blockTransformer","lazyDecoder","f.id","errorComputeChanges","YEvent","getPathTo","oldValue","array.last","delta","packOp","maxSearchMarker","globalSearchMarkerTimestamp","ArraySearchMarker","refreshMarkerTimestamp","marker","overwriteMarker","markPosition","searchMarker","pm","findMarker","yarray","pindex","updateMarkerChanges","callTypeObservers","changedType","error.methodUnimplemented","_encoder","_parentSubs","typeListSlice","cs","typeListToArray","typeListToArraySnapshot","typeListForEach","typeListMap","typeListCreateIterator","currentContent","currentContentIndex","typeListGet","typeListInsertGenericsAfter","referenceItem","ownClientId","jsonContent","packJsonContent","ContentAny","ContentBinary","ContentDoc","lengthExceeded","typeListInsertGenerics","typeListPushGenerics","maxMarker","currMarker","typeListDelete","startLength","typeMapDelete","typeMapSet","typeMapGet","typeMapGetAll","typeMapHas","typeMapGetAllSnapshot","createMapIterator","iterator.iteratorFilter","entry","YArrayEvent","parentSubs","YArrayRefID","readYArray","_decoder","YMapEvent","ymap","entries","iterator.iteratorMap","_value","YMapRefID","readYMap","equalAttrs","object.equalFlat","ItemTextListPosition","currentAttributes","ContentFormat","updateCurrentAttributes","findNextPosition","findPosition","useSearchMarker","insertNegatedAttributes","currPos","negatedAttributes","nextFormat","format","minimizeAttributeChanges","insertAttributes","currentVal","insertText","_val","ContentString","ContentEmbed","formatText","iterationLoop","newlines","cleanupFormattingGap","startAttributes","currAttributes","endFormats","cf","cleanups","reachedCurr","startAttrValue","cleanupContextlessFormattingGap","cleanupYTextFormatting","map.copy","needFullCleanup","afterClock","yText","deleteText","startAttrs","YTextEvent","ytext","retain","deleteLen","addOp","op","object.isEmpty","object.assign","curVal","sanitize","ins","prevSnapshot","computeYChange","ops","packStr","computeDelta","attributeName","attributeValue","YTextRefID","readYText","YXmlTreeWalker","query","YXmlEvent","xml","_document","hooks","binding","xmlType","ref","refItem","pc","YXmlFragmentRefID","readYXmlFragment","object.forEach","stringBuilder","keysLen","attrsString","yxml","YXmlElementRefID","readYXmlElement","YXmlHook","hookName","YXmlHookRefID","readYXmlHook","YXmlText","nestedNodes","YXmlTextRefID","readYXmlText","AbstractStruct","encodingRef","structGCRefNumber","readContentBinary","ContentDeleted","readContentDeleted","createDocFromOpts","opts","readContentDoc","readContentEmbed","_right","_transaction","readContentFormat","ContentJSON","readContentJSON","readContentAny","firstCharCode","readContentString","typeRefs","readContentType","nextID","rightItem","isDeletedByUndoStack","array.some","redoitems","ownClientID","redone","parentItem","leftTrace","rightTrace","nextClock","nextId","redoneItem","rightOrigin","binary.BIT2","isMarked","binary.BIT4","binary.BIT1","doKeep","binary.BIT3","doDelete","o","conflictingItems","itemsBeforeOrigin","parentGCd","ykey","contentRefs","structSkipRefNumber","glo","global","importIdentifier","createMutex","token","highSurrogateRegex","lowSurrogateRegex","simpleDiffString","simpleDiff","ySyncPluginKey","yUndoPluginKey","yCursorPluginKey","Y.isDeleted","defaultColors","getUserColor","colorMapping","colors","user","usedColors","color","random.oneOf","ySyncPlugin","yXmlFragment","permanentUserData","onFirstRender","initialContentChanged","ProsemirrorBinding","syncState","_initargs","_state","pluginState","eventloop.timeout","yUndoPluginState","restoreRelativeSelection","relSel","relativePositionToAbsolutePosition","getRelativeSelection","pmbinding","absolutePositionToRelativePosition","environment.isBrowser","dom.doc","Y.createSnapshot","Y.createDeleteSet","fragmentContent","createNodeFromYElement","PModel.Slice","PModel.Fragment","historyDoc","Y.snapshot","Y.Doc","Y.applyUpdateV2","pud","Y.iterateDeletedStructs","Y.typeListToArraySnapshot","Y.Snapshot","delType","Y.Item","createNodeIfNotExists","Y.UndoManager","updateYFragment","prosemirrorView","Y.XmlElement","createChildren","nextytext","Y.Text","ns","createTextNodesFromYText","textchild","_mapping","deltas","markName","createTypeFromTextNodes","Y.XmlText","marksToAttributes","createTypeFromElementNode","normalizePNodeContent","createTypeFromTextOrElementNode","isObject","pattrs","yattrs","eq","pnode","textNodes","tnode","equalYTextPText","ptexts","object.keys","equalYTypePNode","matchNodeName","normalizedContent","ychild","mappedIdentity","pcontent","computeChildEqualityFactor","yChildren","pChildren","pChildCnt","yChildCnt","minCnt","foundMappedChild","leftY","leftP","rightY","rightP","ytextTrans","nAttrs","Y.ContentString","Y.ContentFormat","updateYText","remove","yDomFragment","pNode","yDomAttrs","pAttrs","updateLeft","updateRight","equalityLeft","equalityRight","yDelLen","yElement","viewsToUpdate","updateMetas","ups","Y.createRelativePositionFromTypeIndex","pNodeSize","Y.RelativePosition","Y.findRootTypeKey","Y.createID","documentType","relPos","decodedPos","Y.createAbsolutePositionFromRelativePosition","Y.isParentOf","contentType","prosemirrorToYXmlFragment","xmlFragment","Y.XmlFragment","defaultAwarenessStateFilter","currentClientId","userClientId","_user","defaultCursorBuilder","userDiv","nonbreakingSpace1","nonbreakingSpace2","defaultSelectionBuilder","rxValidColor","createDecorations","awareness","awarenessFilter","createCursor","createSelection","ystate","aw","clientId","Y.createRelativePositionFromJSON","maxsize","yCursorPlugin","awarenessStateFilter","cursorBuilder","selectionBuilder","getSelection","cursorStateField","_oldState","yCursorState","awarenessListener","updateCursorInfo","Y.compareRelativePositions","awarenessStatesToArray","defaultOnUpdate","CollaborationCursor","showCursorLabel","getTimestamp","TiptapCollaborationCursor","findSuggestionMatch","char","allowSpaces","allowedPrefixes","startOfLine","$position","escapedChar","prefix","regexp","textFrom","matchPrefix","matchPrefixIsAllowed","SuggestionPluginKey","Suggestion","pluginKey","decorationTag","decorationClass","findSuggestionMatch$1","renderer","started","stopped","changed","handleStart","handleChange","handleExit","decorationNode","commandProps","decorationId","currentDecorationNode","composing","EmojiPluginKey","Emoji","emojiObject","ownPaused","toggleFocusTrap","trapStack","activeTrap","unpauseFocusTrap","FocusTrap","Span","author","updateBlameMap","clientIDs","_s","insertIntoBlameMap","TrackState","blameMap","clientID","newBlame","viewReference","editorView","tracked","decos","tState","decodeCache","getDecodeCache","exclude","decode","seq","b1","b2","chr","b3","b4","encodeCache","getEncodeCache","encode","keepEscaped","nextCode","Url","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","hostlessProtocol","slashedProtocol","urlParse","slashesDenoteHost","u","lowerProto","hec","slashes","simplePath","proto","hostEnd","auth","atSign","host","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","qm","port","Any","Cc","regex$6","P","regex$5","Z","htmlDecodeTree","xmlDecodeTree","decodeMap","fromCodePoint","codePoint","replaceCodePoint","CharCodes","TO_LOWER_BIT","BinTrieFlags","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","digitCount","startIdx","lastCp","expectedLength","valueLength","determineBranch","consumed","getDecoder","ret","lastIndex","nodeIdx","branchCount","jumpOffset","lo","hi","midVal","htmlDecoder","decodeHTML","mode","_class","isString","_hasOwnProperty","has","arrayReplaceAt","newElements","isValidEntityCode","surrogate1","surrogate2","UNESCAPE_MD_RE","ENTITY_RE","UNESCAPE_ALL_RE","DIGITAL_ENTITY_TEST_RE","replaceEntityPattern","decoded","unescapeMd","unescapeAll","escaped","entity","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","escapeHtml","REGEXP_ESCAPE_RE","escapeRE","isSpace","isWhiteSpace","isPunctChar","ucmicro.P","ucmicro.S","isMdAsciiPunct","normalizeReference","lib","mdurl","ucmicro","parseLinkLabel","disableNested","prevPos","oldPos","labelEnd","parseLinkDestination","parseLinkTitle","prev_state","default_rules","tokens","idx","env","slf","langName","langAttrs","highlighted","tmpAttrs","tmpToken","Renderer","needLf","nextToken","Ruler","chains","altName","opt","beforeName","ruleName","afterName","ignoreInvalid","chainName","Token","tag","nesting","attrData","StateCore","md","NEWLINES_RE","NULL_RE","isLinkOpen","isLinkClose","linkify","blockTokens","htmlLinkLevel","currentToken","links","lastPos","ln","fullUrl","urlText","token_o","token_t","token_c","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","replaceFn","replace_scoped","inlineTokens","inside_autolink","replace_rare","blkIdx","QUOTE_TEST_RE","QUOTE_RE","APOSTROPHE","replaceAt","process_inlines","thisLevel","OUTER","canOpen","canClose","isSingle","nextChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","openQuote","closeQuote","smartquotes","text_join","_rules","r_normalize","r_block","r_inline","r_linkify","r_replacements","r_smartquotes","r_text_join","Core","StateBlock","indent","indent_found","line","begin","keepLastLF","queue","lineIndent","lineStart","MAX_AUTOCOMPLETED_CELLS","getLine","escapedSplit","isEscaped","table","startLine","endLine","silent","nextLine","firstCh","secondCh","lineText","columns","aligns","columnCount","oldParentType","terminatorRules","token_to","tableLines","token_tho","token_htro","token_ho","token_il","tbodyLines","autocompletedCells","terminate","token_tbo","token_tro","token_tdo","fence","mem","markup","haveEndMarker","blockquote","oldLineMax","oldBMarks","oldBSCount","oldSCount","oldTShift","lastLineEmpty","isOutdented","initial","spaceAfterMarker","adjustTab","oldIndent","lines","hr","cnt","skipBulletListMarker","skipOrderedListMarker","markTightParagraphs","tight","isTerminatingParagraph","isOrdered","markerValue","posAfterMarker","markerCharCode","listTokIdx","listLines","prevEmptyEnd","contentStart","indentAfterMarker","itemLines","oldTight","oldListIndent","_endLine","getNextLine","isContinuation","lineContent","destRes","href","destEndPos","destEndLineNo","titleRes","block_names$1","attr_name","unquoted","single_quoted","double_quoted","attr_value","open_tag","close_tag","comment","processing","declaration","cdata","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","HTML_SEQUENCES","block_names","html_block","token_i","lheading","paragraph","r_table","r_code","r_fence","r_blockquote","r_hr","r_list","r_reference","r_html_block","r_heading","r_lheading","r_paragraph","ParserBlock","maxNesting","hasEmptyLines","prevLine","outTokens","StateInline","token_meta","canSplitWord","left_flanking","right_flanking","isTerminatorChar","SCHEME_RE","link","pmax","ws","ESCAPED","escape","ch1","escapedStr","ch2","origStr","backtick","openerLength","matchEnd","closerLength","strikethrough_tokenize","scanned","postProcess","delimiters","loneMarkers","startDelim","endDelim","strikethrough_postProcess","tokens_meta","r_strikethrough","emphasis_tokenize","isStrong","emphasis_post_process","r_emphasis","parseReference","labelStart","image","EMAIL_RE","AUTOLINK_RE","autolink","isLetter","lc","html_inline","DIGITAL_RE","NAMED_RE","processDelimiters","openersBottom","headerIdx","lastTokenIdx","jumps","closerIdx","closer","minOpenerIdx","openerIdx","newMinOpenerIdx","opener","isOddMatch","lastJump","link_pairs","fragments_join","r_text","r_newline","r_escape","r_backticks","r_link","r_image","r_autolink","r_html_inline","r_entity","_rules2","r_balance_pairs","r_fragments_join","ParserInline","reFactory","re","text_separators","isOptionsObj","defaultSchemas","tail","tlds_2ch_src_re","tlds_default","resetScanCache","createValidator","createNormalizer","tlds","untpl","tpl","aliases","schemaError","compiled","alias","slist","Match","createMatch","LinkifyIt","schemas","definition","ml","me","tld_pos","at_pos","keepOld","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","domain","labels","encoded","ucs2decode","counter","ucs2encode","codePoints","basicToDigit","digitToBasic","digit","flag","adapt","numPoints","firstTime","input","inputLength","basic","oldi","w","baseMinusT","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","toUnicode","toASCII","punycode","cfg_default","cfg_zero","cfg_commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","RECODE_HOSTNAME_FOR","normalizeLink","mdurl.parse","mdurl.encode","mdurl.format","normalizeLinkText","mdurl.decode","MarkdownIt","presetName","utils.isString","ParserCore","utils","utils.assign","helpers","presets","missed","maybeMerge","MarkdownParseState","tokenHandlers","toks","noCloseToken","withoutTrailingNewline","noOp","MarkdownParser","tokenizer","markdownEnv","listIsTight","blankMark","MarkdownSerializer","MarkdownSerializerState","defaultMarkdownSerializer","backticks","maxW","nStr","isPlainURL","inAutolink","_mark","backticksFor","ticks","delimMin","trim","delim","firstDelim","fromBlockStart","trailing","progress","leading","lead","trail","noEsc","isTight","prevTight","entities","regex","encode_1","decode_1","uc_micro","sources","UNICODE_PUNCT_RE","parse_link_label","parse_link_destination","parse_link_title","ruler","replacements","state_core","parser_core","html_blocks","html_re","state_block","parser_block","_escape","strikethrough","emphasis","balance_pairs","can_open","can_close","state_inline","parser_inline","linkifyIt","freeExports","freeModule","module","freeGlobal","_default","zero","commonmark","markdownIt","requiresPort","protocol","undef","querystring","querystringify","pairs","querystringify_1","required","qs","controlOrWhitespace","CRHTLF","protocolre","windowsDriveLetter","address","isSpecial","lolcation","loc","globalVar","location","finaldestination","scheme","extractProtocol","forwardSlashes","otherSlashes","slashesCount","relative","unshift","up","extracted","instruction","instructions","toString","stringify","_interopDefault","ex","parseUrl","_slicedToArray","sliceIterator","_arr","_n","renderMention","parseUri","uri","pieces","parseMentions","matcher","blockToken","_children$slice","_children$slice2","matchToken","openToken","textToken","_children$slice2$","closeToken","markdownUnderlines","splitMixedLists","includesClass","startsWithTask","splitBefore","findChildOf","splitListAt","TokenConstructor","closeList","openList","searchLevel","container_plugin","validateDefault","renderDefault","min_markers","marker_str","marker_char","marker_len","validate","auto_closed","marker_count","old_parent","old_line_max","typesAvailable","buildRender","callouts","DETAILS_START_REGEX","DETAILS_END_REGEX","SUMMARY_REGEX","parseDetails","detailsFound","detailsSummary","nestedCount","oldParent","details","isPreviewLinkInParagraph","unwrapToken","preview","linkPreviews","keepHardbreakSyntax","rval","markdownitNewline","markdownitEscape","keepSyntax","matchChars","contentNext","markdownItFrontMatter","cb","frontMatter","start_content","markdownit","taskLists","fm","underline","hardbreak","markdownitMentions","implicitFigures","transformPastedHTML","forAllTextNodes","collapseWhiteSpace","nodeIterator","COLLAPSING_WHITE_SPACE_VALUES","ancestor","whiteSpace","Markdown","shiftKey","para","traverseNodes","clipboardSerializer","createMarkdownSerializer","extractNodesToMarkdown","extractMarksToMarkdown","extractToPlaintext","defaultMarks","convertNames","markEntries","extractToMarkdown","nodesOrMarks","nodeOrMarkEntries","toMarkdown","defaultNodes","nodesToMarkdown","marksToMarkdown","convert","_m","letter","Text","PlainTextDocument","PlainText","cPlusPlus","hljs","C_LINE_COMMENT_MODE","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","CPP_PRIMITIVE_TYPES","STRINGS","NUMBERS","PREPROCESSOR","TITLE_MODE","FUNCTION_TITLE","RESERVED_KEYWORDS","RESERVED_TYPES","TYPE_HINTS","FUNCTION_HINTS","CPP_KEYWORDS","FUNCTION_DISPATCH","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","arduino","ARDUINO_KW","ARDUINO","kws","bash","VAR","BRACED_VAR","SUBST","HERE_DOC","QUOTE_STRING","ESCAPED_QUOTE","APOS_STRING","ARITHMETIC","SH_LIKE_SHELLS","KNOWN_SHEBANG","FUNCTION","KEYWORDS","LITERALS","PATH_MODE","SHELL_BUILT_INS","BASH_BUILT_INS","ZSH_BUILT_INS","GNU_CORE_UTILS","TYPES","cpp","csharp","BUILT_IN_KEYWORDS","FUNCTION_MODIFIERS","LITERAL_KEYWORDS","NORMAL_KEYWORDS","CONTEXTUAL_KEYWORDS","VERBATIM_STRING","VERBATIM_STRING_NO_LF","SUBST_NO_LF","INTERPOLATED_STRING","INTERPOLATED_VERBATIM_STRING","INTERPOLATED_VERBATIM_STRING_NO_LF","STRING","GENERIC_MODIFIER","TYPE_IDENT_RE","AT_IDENTIFIER","MODES","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","modes","VENDOR_PREFIX","AT_MODIFIERS","AT_PROPERTY_RE","IDENT_RE","go","graphql","GQL_NAME","ini","COMMENTS","VARIABLES","ARRAY","BARE_KEY","QUOTED_KEY_DOUBLE_QUOTE","QUOTED_KEY_SINGLE_QUOTE","ANY_KEY","DOTTED_KEY","decimalDigits","frac","hexDigits","NUMERIC","recurRegex","substitution","java","JAVA_IDENT_RE","GENERIC_IDENT_RE","ANNOTATION","PARAMS","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","BUILT_INS","javascript","hasClosingTag","IDENT_RE$1","FRAGMENT","XML_SELF_CLOSING","XML_TAG","afterMatchIndex","afterMatch","KEYWORDS$1","decimalInteger","NUMBER","HTML_TEMPLATE","CSS_TEMPLATE","GRAPHQL_TEMPLATE","TEMPLATE_STRING","COMMENT","SUBST_INTERNALS","SUBST_AND_COMMENTS","PARAMS_CONTAINS","CLASS_OR_EXTENDS","CLASS_REFERENCE","USE_STRICT","FUNCTION_DEFINITION","UPPER_CASE_CONSTANT","noneOf","FUNCTION_CALL","PROPERTY_ACCESS","GETTER_OR_SETTER","FUNC_LEAD_IN_RE","FUNCTION_VARIABLE","ATTRIBUTE","PUNCTUATION","LITERALS_MODE","kotlin","KEYWORDS_WITH_LABEL","LABEL","VARIABLE","ANNOTATION_USE_SITE","KOTLIN_NUMBER_MODE","KOTLIN_NESTED_COMMENT","KOTLIN_PAREN_TYPE","KOTLIN_PAREN_TYPE2","PSEUDO_SELECTORS","less","PSEUDO_SELECTORS$1","INTERP_IDENT_RE","RULES","VALUE_MODES","STRING_MODE","IDENT_MODE","relevance","AT_KEYWORDS","PARENS_MODE","VALUE_WITH_RULESETS","MIXIN_GUARD_MODE","RULE_MODE","AT_RULE_MODE","VAR_RULE_MODE","SELECTOR_MODE","PSEUDO_SELECTOR_MODE","lua","OPENING_LONG_BRACKET","CLOSING_LONG_BRACKET","LONG_BRACKETS","makefile","FUNC","ASSIGNMENT","META","TARGET","markdown","INLINE_HTML","HORIZONTAL_RULE","CODE","LIST","LINK_REFERENCE","URL_SCHEME","LINK","ITALIC","BOLD_WITHOUT_ITALIC","ITALIC_WITHOUT_BOLD","CONTAINABLE","objectivec","API_CLASS","IDENTIFIER_RE","CLASS_KEYWORDS","perl","REGEX_MODIFIERS","PERL_KEYWORDS","METHOD","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","middle","PAIRED_RE","PERL_DEFAULT_CONTAINS","php","NOT_PERL_ETC","PASCAL_CASE_CLASS_NAME_RE","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","resp","NOWDOC","WHITESPACE","KWS","normalizeKeywords","CONSTRUCTOR_CALL","CONSTANT_REFERENCE","LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON","NAMED_ARGUMENT","PARAMS_MODE","FUNCTION_INVOKE","ATTRIBUTE_CONTAINS","phpTemplate","plaintext","python","RESERVED_WORDS","PROMPT","LITERAL_BRACKET","digitpart","pointfloat","lookahead","COMMENT_TYPE","pythonRepl","NUMBER_TYPES_RE","OPERATORS_RE","PUNCTUATION_RE","ruby","RUBY_METHOD_RE","CLASS_NAME_RE","CLASS_NAME_WITH_NAMESPACE_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","COMMENT_MODES","decimal","digits","RUBY_DEFAULT_CONTAINS","IRB_DEFAULT","rust","NUMBER_SUFFIX","BUILTINS","scss","PSEUDO_ELEMENTS$1","PSEUDO_CLASSES$1","shell","sql","COMMENT_MODE","QUOTED_IDENTIFIER","MULTI_WORD_TYPES","NON_RESERVED_WORDS","RESERVED_FUNCTIONS","POSSIBLE_WITHOUT_PARENS","COMBOS","FUNCTIONS","keyword","OPERATOR","reduceRelevancy","exceptions","when","qualifyFn","concat","stripOptionsFromArgs","either","keywordWrapper","dotKeywords","optionalDotKeywords","keywordTypes","keywords","literals","precedencegroupKeywords","numberSignKeywords","builtIns","operatorHead","operatorCharacter","operator","identifierHead","identifierCharacter","identifier","typeIdentifier","keywordAttributes","availabilityKeywords","swift","BLOCK_COMMENT","DOT_KEYWORD","KEYWORD_GUARD","PLAIN_KEYWORDS","kw","REGEX_KEYWORDS","KEYWORD","KEYWORD_MODES","BUILT_IN_GUARD","BUILT_IN","OPERATOR_GUARD","OPERATORS","ESCAPED_CHARACTER","rawDelimiter","ESCAPED_NEWLINE","INTERPOLATION","MULTILINE_STRING","SINGLE_LINE_STRING","IMPLICIT_PARAMETER","PROPERTY_WRAPPER_PROJECTION","IDENTIFIERS","AVAILABLE_ATTRIBUTE","KEYWORD_ATTRIBUTE","USER_DEFINED_ATTRIBUTE","TYPE","GENERIC_ARGUMENTS","TUPLE_ELEMENT_NAME","TUPLE","GENERIC_PARAMETERS","FUNCTION_PARAMETER_NAME","FUNCTION_PARAMETERS","INIT_SUBSCRIPT","OPERATOR_DECLARATION","PRECEDENCEGROUP","variant","interpolation","submodes","typescript","tsLanguage","NAMESPACE","INTERFACE","TS_SPECIFIC_KEYWORDS","DECORATOR","swapMode","indx","functionDeclaration","vbnet","CHARACTER","MM_DD_YYYY","YYYY_MM_DD","TIME_12H","TIME_24H","DATE","DOC_COMMENT","wasm","LINE_COMMENT","FUNCTION_REFERENCE","ARGUMENT","PARENS","MATH_OPERATIONS","TAG_NAME_RE","XML_IDENT_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","yaml","URI_CHARACTERS","KEY","TEMPLATE_VARIABLES","CONTAINER_STRING","TIMESTAMP","VALUE_CONTAINER","OBJECT","deepFreeze","Response$1","escapeHTML","inherit$1","SPAN_CLOSE","emitsWrappingTags","scopeToCSSClass","HTMLRenderer$1","parseTree","className","TokenTree$1","TokenTree","builder","emitter","HTMLRenderer","anyNumberOfTimes","optional","countMatchGroups","startsWith","lexeme","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","MATCH_NOTHING_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","beginShebang","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","modeOptions","ENGLISH_WORD","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","END_SAME_AS_BEGIN","skipIfHasPrecedingDot","scopeClassName","_parent","beginKeywords","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","originalMode","COMMON_KEYWORDS","DEFAULT_KEYWORD_SCOPE","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","compileList","keywordList","pair","scoreForKeyword","providedScore","commonKeyword","seenDeprecations","deprecated","version","MultiClassError","remapScopeNames","regexes","scopeNames","emit","positions","beginMultiClass","endMultiClass","scopeSugar","MultiClass","compileLanguage","language","langRe","MultiRegex","terminators","matchData","ResumableMultiRegex","m2","buildModeRegex","mm","compileMode","cmode","keywordPattern","expandOrCloneMode","dependencyOnParent","reason","inherit","NO_MATCH","MAX_KEYWORD_HITS","HLJS","languages","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","TokenTreeEmitter","shouldNotHighlight","languageName","blockLanguage","classes","getLanguage","highlight","codeOrLanguageName","optionsOrCode","ignoreIllegals","fire","_highlight","codeToHighlight","continuation","keywordHits","keywordData","matchText","processKeywords","modeBuffer","word","kind","keywordRelevance","cssClass","emitKeyword","processSubLanguage","continuations","highlightAuto","processBuffer","emitMultiClass","klass","startNewMode","endOfMode","matchPlusRemainder","Response","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","doEndMatch","endMode","processContinuations","lastMatch","processLexeme","textBeforeMatch","processed","iterations","beforeMatch","processedCount","justTextHighlightResult","languageSubset","autoDetection","best","secondBest","updateClassName","currentLang","resultLang","highlightElement","HTMLInjectionError","configure","userOptions","initHighlighting","highlightAll","initHighlightingOnLoad","wantsHighlight","boot","registerLanguage","languageDefinition","lang","error$1","registerAliases","unregisterLanguage","listLanguages","aliasList","upgradePluginAPI","addPlugin","removePlugin","deprecateHighlightBlock","core","namespace","vsprintf","printf","fmt","argIndex","leadingZero","precision","nextArg","slurpNumber","fault","Constructor","FormattedError","formatter","own","defaultPrefix","high","HastEmitter","subset","syntax","registerAlias","registered","aliasOrLanguage","rawName","lowlight","inputRegex","Blockquote","ListItem","TextStyle","BulletList","inputRule","listInputRule","TiptapBulletList","ICONS_MAP","Callouts","classy","Callout","CharacterCount","limit","over","pasteRegex","Code","backtickInputRegex","tildeInputRegex","CodeBlock","languageClassPrefix","isAtEnd","endsWithDoubleNewline","vscode","vscodeData","getDefaultExportFromCjs","HighlightJS","parseNodes","getHighlightNodes","getDecorations","defaultLanguage","decoration","param","LowlightPlugin","api","lowlightPlugin","decorationSet","oldNodeName","newNodeName","oldNodes","newNodes","CodeBlockLowlight","byteToHex","unsafeStringify","rnds8","rng","randomUUID","native","v4","rnds","CopyToClipboardMixin","showSuccess","showError","MarkerIcon","ContentCopy","Check","Eye","ViewSplitVertical","CodeBraces","NcActions","NcActionButton","NcActionInput","NcActionLink","NcLoadingIcon","textContent","__vite_default__","svg","targetElement","TiptapCodeBlockLowlight","CodeBlockView","DetailsContent","DetailsContentView","DetailsSummary","TriangleSmallDownIcon","detailsParentInfo","resolvedPos","childFromNode","childNodes","Details","DetailsView","sliceContent","detailsContent","dropCursor","DropCursorView","nodeRect","parentLeft","parentTop","disableDropCursor","disabled","Dropcursor","readFromCache","addToCache","cachePos","TableMap","problems","leftA","rightA","topA","bottomA","leftB","rightB","topB","bottomB","row","col","rowStart","rowEnd","rowEndIndex","computeMap","findWidth","mapPos","colWidths","rowNode","cellNode","colspan","rowspan","colwidth","colW","widthIndex","expectedPos","tableMap","badWidths","findBadColWidths","hasRowSpan","rowWidth","prevRow","cell","colWidth","freshColWidth","tableNodeTypes","role","tableEditingKey","cellAround","cellWrapping","isInTable","selectionCell","$cell","cellNear","pointsAtCell","moveCellForward","inSameTable","$cellA","$cellB","nextCell","tableStart","removeColSpan","addColSpan","columnIsHeader","headerCell","CellSelection","_CellSelection","$anchorCell","$headCell","cells","tableChanged","rows","rowContent","cellRect","extraLeft","extraRight","anchorTop","headTop","anchorBottom","headBottom","anchorRect","headRect","anchorLeft","headLeft","anchorRight","headRight","anchorCell","headCell","CellBookmark","_CellBookmark","drawCellSelection","isCellBoundarySelection","afterFrom","beforeTo","isTextSelectionAcrossCells","fromCellBoundaryNode","toCellBoundaryNode","normalizeSelection","allowTableNodeSelection","NodeSelection2","lastCell","fixTablesKey","PluginKey2","changedDescendants","curSize","fixTables","fixTable","tablePos","mustAdd","prob","pastedCells","fitSlice","Slice2","ensureRectangular","widths","Fragment2","clipCells","newWidth","newHeight","newRows","growTable","emptyHead","start2","header","emptyRow","isolateHorizontal","cellTop","cellLeft","isolateVertical","updatePos","insertCells","recomp","handleKeyDown","shiftArrow","deleteCellSelection","maybeSetSelection","Selection2","atEndOfCell","cellSel","baseContent","Slice3","handlePaste","Fragment3","handleMouseDown","startEvent","startDOMCell","domInCell","setCellSelection","cellUnderMouse","$anchor2","starting","TextSelection2","cellPos","dirStr","mousePos","TableView","cellMinWidth","updateColumnsOnResize","record","colgroup","overrideCol","overrideValue","totalWidth","fixedWidth","hasWidth","cssWidth","columnResizingPluginKey","PluginKey3","columnResizing","handleWidth","View","lastColumnResizable","tableName","ResizeState","handleMouseMove","handleMouseLeave","handleMouseDown2","handleDecorations","_ResizeState","activeHandle","handle","domCellAround","edgeCell","updateHandle","currentColWidth","finish","pluginState2","updateColumnWidth","draggedWidth","dragged","displayColumnWidth","domWidth","mapIndex","zeroes","DecorationSet2","Decoration2","selectedRect","addColumn","refColumn","addColumnBefore","addColumnAfter","removeColumn","mapStart","deleteColumn","rowIsHeader","addRow","rowPos","refRow","addRowBefore","addRowAfter","removeRow","nextRow","deleteRow","cellsOverlapRectangle","indexTop","indexLeft","indexBottom","indexRight","mergeCells","Fragment4","mergedPos","mergedCell","splitCell","splitCellWithType","getCellType","baseAttrs","setCellAttr","deprecated_toggleHeader","isHeaderEnabledByType","cellPositions","toggleHeader","isHeaderRowEnabled","isHeaderColumnEnabled","selectionStartsAt","cellsRect","newType","relativeCellPos","toggleHeaderCell","findNextCell","goToNextCell","direction","TextSelection3","deleteTable","tableEditing","Plugin2","updateColumns","TableView$1","createColGroup","cols","tableWidth","tableMinWidth","createCell","cellType","cellContent","getTableNodeTypes","roles","createTable","rowsCount","colsCount","withHeaderRow","headerCells","isCellSelection","deleteTableWhenAllCellsSelected","cellCount","TableCaption","TableCell","backup","columnIndex","cellRenderedContentLength","columnWidth","align","leftPadding","rightPadding","TableHeader","headerIndex","TableRow","TableHeadRow","headRow","findSameCellInNextRow","cellStart","getColumns","calculateColumnWidths","column","maxWidth","cellWidth","lastRow","newRow","tableDepth","NcActionButtonGroup","textAlign","extendNodeWithView","EditableTable","TableCellView","TableHeaderView","createSuggestions","listComponent","popup","emojiAddRecent","EmojiSuggestion","EmojiList","emojiSearch","FrontMatter","TiptapCodeBlock","dashes","GapCursor","GapBookmark","closedBefore","closedAfter","override","mustMove","$cur","gapCursor","drawGapCursor","handleClick","beforeinput","$found","clickPos","Gapcursor","HardBreak","TipTapHardBreak","ctx","Heading","base64","getWholeCharAndI","charCode","slug","slugify","charAndI","locales","defaultLocale","localeMap","lengths","disallowedChars","matchedMultichar","initialMulticharmap","initialCharmap","customMap","multi","single","locale","extractHeadings","headings","getId","headingAnchorPluginKey","headingAnchor","anchorDecorations","mapDecorations","headingsChanged","removedDecorations","isDifferentFrom","decorationForHeading","anchorForHeading","setHeadings","TipTapHeading","HorizontalRule","$originFrom","$originTo","currentChain","posAfter","isPopup","popupItem","isServer","vNode","clickHandler","NcModal","LoadImageError","imageUrl","ImageIcon","DeleteIcon","ShowImageModal","ClickOutside","useAttachmentResolver","mapGetters","imageViews","imgv","attachment","TiptapImage","ImageView","coordinates","customEvent","ImageInline","KeepSyntax","groups","groupIndex","SuggestionListWrapper","isMac","MODIFIERS","TRANSLATIONS","getEntryClasses","actionEntry","keysString","keyChar","getKeyshortcuts","keyModifiers","getKeys","isMobile","$editor","getIsActive","getActionState","BaseActionEntry","useIsMobileMixin","MENU_ID","useMenuIDMixin","NcEmojiPicker","useIsPublicMixin","useEditorUpload","useActionAttachmentPromptMixin","useUploadingStateMixin","useActionChooseLocalAttachmentMixin","useFileMixin","loadState","file","_status","fileInfo","generateUrl","getLinkWithPicker","ReadonlyEntries","$outlineActions","$outlineState","actionsFullEntries","ActionInsertLink","ActionAttachmentUpload","EmojiPickerAction","suggestGroupFormat","suggestGroupPicker","filterOut","important","hasMarkdownSyntax","pattern","isValidMarkdown","isValidUrl","sortImportantFirst","formattingSuggestions","menuEntries","suggestions","LinkPickerList","commandChain","searchProvider","canRunState","isActiveState","LinkPickerPluginKey","LinkPicker","domHref","relativePath","parseHref","isLinkToSelfWithHash","locationNoHash","PROTOCOLS_WITH_PREVIEW","CheckIcon","CloseIcon","ContentCopyIcon","NcTextField","LinkOffIcon","PencilIcon","LinkBubblePluginView","#component","#editor","__privateGet","__privateSet","LinkBubbleView","referenceEl","activeLinkFromSelection","resolved","nodeEnd","activeLink","linkMark","setActiveLink","linkBubbleKey","hideLinkBubble","linkBubble","linkBubblePlugin","sameSelection","sameDoc","noHistory","_node","_nodePos","linkClickingKey","linkClicking","linkElement","linkEl","LinkBubble","MentionPluginKey","Mention","mergedOptions","isMention","TipTapMention","searchQueryPluginKey","searchQuery","trMeta","setSearchQuery","matchAll","nextMatch","previousMatch","searchDecorations","runSearch","highlightResults","oldSearch","newSearch","queryChanged","indexChanged","matchAllChanged","total","_position","normalizeIndex","Search","OrderedList","attributesWithoutStart","TiptapOrderedList","Paragraph","extractLinkParagraphs","paragraphs","previewPossible","hasOtherContent","extractHref","DotsVerticalIcon","previewOptionsPluginKey","previewOptions","linkParagraphs","linkParagraphDecorations","linkParagraphsChanged","linkParagraph","decorationForLinkParagraph","previewOptionForLinkParagraph","propsData","PreviewOptions","TiptapParagraph","previousNode","Placeholder","isEmptyDoc","hasAnchor","Preview","previewAttributesFromSelection","TaskItem","dataChecked","shortcuts","listItem","checkboxWrapper","checkboxStyler","checkbox","checked","updatedNode","TipTapTaskItem","listAttributes","checkboxAttributes","TaskList","TiptapTaskList","nodeEqualsType","TrailingNode","disabledNodes","__","shouldInsertNodeAtEnd","endPosition","starInputRegex","starPasteRegex","underscoreInputRegex","underscorePasteRegex","Italic","isValidLinkStructure","preventAutolink","newRange","nodesInChangedRanges","textBlock","textBeforeWhitespace","wordsBeforeWhitespace","lastWordBeforeSpace","lastWordAndBlockOffset","linksBeforeSpace","tokenize","pasteHandler","ATTR_WHITESPACE","isAllowedUri","protocols","allowedProtocols","nextProtocol","Link","registerCustomProtocol","reset","foundLinks","PROTOCOLS_TO_LINK_TO","extractHrefFromMatch","extractHrefFromMarkdownLink","TipTapLink","Strike","TipTapStrike","Bold","Strong","Underline","TipTapUnderline","TipTapItalic","RichText","defaultExtensions","additionalExtensionNames"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,92,93,94,95,96,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,342,348,349,353,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,406,407,408,409,410,411,412,413,414,415,416,417,418,419,426,429,430,431,432,433,435,437,439,451,452,453,455,456,460,461,462,481,487,493,495,497,501,504,507,510,511,513,515,517],"sources":["../node_modules/@nextcloud/dialogs/dist/index.mjs","../node_modules/orderedmap/dist/index.js","../node_modules/prosemirror-model/dist/index.js","../node_modules/prosemirror-transform/dist/index.js","../node_modules/prosemirror-state/dist/index.js","../node_modules/prosemirror-view/dist/index.js","../node_modules/w3c-keyname/index.es.js","../node_modules/prosemirror-keymap/dist/index.js","../node_modules/prosemirror-commands/dist/index.js","../node_modules/prosemirror-schema-list/dist/index.js","../node_modules/@tiptap/core/dist/index.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/tippy.js/dist/tippy.esm.js","../node_modules/@tiptap/extension-floating-menu/dist/index.js","../node_modules/vue-ts-types/dist/validators/isInstanceOf.js","../node_modules/vue-ts-types/dist/validators/isInteger.js","../node_modules/vue-ts-types/dist/validators/isOneOf.js","../node_modules/vue-ts-types/dist/validators/isSymbol.js","../node_modules/vue-ts-types/dist/validators/index.js","../node_modules/vue-ts-types/dist/util.js","../node_modules/vue-ts-types/dist/prop-types/string.js","../node_modules/vue-ts-types/dist/prop-types/boolean.js","../node_modules/vue-ts-types/dist/prop-types/number.js","../node_modules/vue-ts-types/dist/prop-types/integer.js","../node_modules/vue-ts-types/dist/prop-types/symbol.js","../node_modules/vue-ts-types/dist/prop-types/vueComponent.js","../node_modules/vue-ts-types/dist/prop-types/any.js","../node_modules/vue-ts-types/dist/prop-types/array.js","../node_modules/vue-ts-types/dist/prop-types/object.js","../node_modules/vue-ts-types/dist/prop-types/function.js","../node_modules/vue-ts-types/dist/prop-types/oneOf.js","../node_modules/vue-ts-types/dist/prop-types/oneOfObjectKeys.js","../node_modules/vue-ts-types/dist/prop-types/oneOfTypes.js","../node_modules/vue-ts-types/dist/prop-types/instanceOf.js","../node_modules/vue-ts-types/dist/validators/isNegative.js","../node_modules/vue-ts-types/dist/validators/isPositive.js","../node_modules/vue-ts-types/dist/validators/isNonNegative.js","../node_modules/vue-ts-types/dist/validators/isNonPositive.js","../node_modules/vue-ts-types/dist/index.js","../node_modules/@tiptap/vue-2/dist/index.js","../src/components/Editor/Wrapper.provider.js","../node_modules/@nextcloud/vue/dist/Components/NcActionCaption.mjs","../node_modules/@nextcloud/vue/dist/Components/NcActionRadio.mjs","../node_modules/@nextcloud/vue/dist/Components/NcActionSeparator.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcRichText-Xs-QVexE.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserBubble-G7FKOk8N.mjs","../src/mixins/store.js","../src/components/Editor/TableOfContents.vue","../node_modules/vue-material-design-icons/AlphabeticalVariant.vue","../node_modules/vue-material-design-icons/Close.vue","../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/CodeBrackets.vue","../node_modules/vue-material-design-icons/CodeTags.vue","../node_modules/vue-material-design-icons/AlertDecagram.vue","../node_modules/vue-material-design-icons/Delete.vue","../node_modules/vue-material-design-icons/FileDocument.vue","../node_modules/vue-material-design-icons/DotsHorizontal.vue","../node_modules/vue-material-design-icons/EmoticonOutline.vue","../node_modules/vue-material-design-icons/Folder.vue","../node_modules/vue-material-design-icons/FormatBold.vue","../node_modules/vue-material-design-icons/FormatSize.vue","../node_modules/vue-material-design-icons/AlignHorizontalCenter.vue","../node_modules/vue-material-design-icons/AlignHorizontalLeft.vue","../node_modules/vue-material-design-icons/AlignHorizontalRight.vue","../node_modules/vue-material-design-icons/FormatHeader1.vue","../node_modules/vue-material-design-icons/FormatHeader2.vue","../node_modules/vue-material-design-icons/FormatHeader3.vue","../node_modules/vue-material-design-icons/FormatHeader4.vue","../node_modules/vue-material-design-icons/FormatHeader5.vue","../node_modules/vue-material-design-icons/FormatHeader6.vue","../node_modules/vue-material-design-icons/FormatIndentDecrease.vue","../node_modules/vue-material-design-icons/FormatIndentIncrease.vue","../node_modules/vue-material-design-icons/FormatItalic.vue","../node_modules/vue-material-design-icons/FormatListBulleted.vue","../node_modules/vue-material-design-icons/FormatListCheckbox.vue","../node_modules/vue-material-design-icons/FormatListNumbered.vue","../node_modules/vue-material-design-icons/FormatQuoteClose.vue","../node_modules/vue-material-design-icons/FormatStrikethrough.vue","../node_modules/vue-material-design-icons/FormatUnderline.vue","../node_modules/vue-material-design-icons/HelpCircle.vue","../node_modules/vue-material-design-icons/ImageOutline.vue","../node_modules/vue-material-design-icons/Information.vue","../node_modules/vue-material-design-icons/Link.vue","../node_modules/vue-material-design-icons/LinkOff.vue","../node_modules/vue-material-design-icons/Loading.vue","../node_modules/vue-material-design-icons/Paperclip.vue","../node_modules/vue-material-design-icons/CheckboxMarkedCircle.vue","../node_modules/vue-material-design-icons/ArrowURightTop.vue","../node_modules/vue-material-design-icons/Shape.vue","../node_modules/vue-material-design-icons/Table.vue","../node_modules/vue-material-design-icons/TableColumnPlusAfter.vue","../node_modules/vue-material-design-icons/TableColumnPlusBefore.vue","../node_modules/vue-material-design-icons/TableRowPlusAfter.vue","../node_modules/vue-material-design-icons/TableRowPlusBefore.vue","../node_modules/vue-material-design-icons/TableCog.vue","../node_modules/vue-material-design-icons/ArrowULeftTop.vue","../node_modules/vue-material-design-icons/UnfoldMoreHorizontal.vue","../node_modules/vue-material-design-icons/Upload.vue","../node_modules/vue-material-design-icons/Alert.vue","../node_modules/vue-material-design-icons/Web.vue","../node_modules/vue-material-design-icons/TranslateVariant.vue","../src/components/icons.js","../src/components/Editor/EditorOutline.vue","../node_modules/lib0/map.js","../node_modules/lib0/set.js","../node_modules/lib0/array.js","../node_modules/lib0/observable.js","../node_modules/lib0/math.js","../node_modules/lib0/binary.js","../node_modules/lib0/number.js","../node_modules/lib0/string.js","../node_modules/lib0/encoding.js","../node_modules/lib0/error.js","../node_modules/lib0/decoding.js","../node_modules/lib0/webcrypto.js","../node_modules/lib0/random.js","../node_modules/lib0/time.js","../node_modules/lib0/promise.js","../node_modules/lib0/conditions.js","../node_modules/lib0/storage.js","../node_modules/lib0/object.js","../node_modules/lib0/function.js","../node_modules/lib0/environment.js","../node_modules/lib0/buffer.js","../node_modules/lib0/pair.js","../node_modules/lib0/dom.js","../node_modules/lib0/eventloop.js","../node_modules/lib0/symbol.js","../node_modules/lib0/logging.common.js","../node_modules/lib0/logging.js","../node_modules/lib0/iterator.js","../node_modules/yjs/dist/yjs.mjs","../node_modules/lib0/mutex.js","../node_modules/lib0/diff.js","../node_modules/y-prosemirror/src/plugins/keys.js","../node_modules/y-prosemirror/src/plugins/sync-plugin.js","../node_modules/y-prosemirror/src/lib.js","../node_modules/y-prosemirror/src/plugins/cursor-plugin.js","../node_modules/@tiptap/extension-collaboration-cursor/dist/index.js","../src/extensions/CollaborationCursor.js","../node_modules/@tiptap/suggestion/dist/index.js","../src/extensions/Emoji.js","../src/extensions/FocusTrap.js","../src/extensions/Keymap.js","../src/extensions/tracking/models.js","../src/extensions/tracking/TrackState.js","../src/extensions/UserColor.js","../node_modules/prosemirror-markdown/node_modules/mdurl/lib/decode.mjs","../node_modules/prosemirror-markdown/node_modules/mdurl/lib/encode.mjs","../node_modules/prosemirror-markdown/node_modules/mdurl/lib/format.mjs","../node_modules/prosemirror-markdown/node_modules/mdurl/lib/parse.mjs","../node_modules/prosemirror-markdown/node_modules/uc.micro/properties/Any/regex.mjs","../node_modules/prosemirror-markdown/node_modules/uc.micro/categories/Cc/regex.mjs","../node_modules/prosemirror-markdown/node_modules/uc.micro/categories/Cf/regex.mjs","../node_modules/prosemirror-markdown/node_modules/uc.micro/categories/P/regex.mjs","../node_modules/prosemirror-markdown/node_modules/uc.micro/categories/S/regex.mjs","../node_modules/prosemirror-markdown/node_modules/uc.micro/categories/Z/regex.mjs","../node_modules/prosemirror-markdown/node_modules/entities/lib/esm/generated/decode-data-html.js","../node_modules/prosemirror-markdown/node_modules/entities/lib/esm/generated/decode-data-xml.js","../node_modules/prosemirror-markdown/node_modules/entities/lib/esm/decode_codepoint.js","../node_modules/prosemirror-markdown/node_modules/entities/lib/esm/decode.js","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/common/utils.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/helpers/parse_link_label.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/helpers/parse_link_title.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/renderer.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/ruler.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/token.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/state_core.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/normalize.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/block.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/inline.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/linkify.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/replacements.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/smartquotes.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_core/text_join.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/parser_core.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/state_block.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/table.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/code.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/fence.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/blockquote.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/hr.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/list.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/reference.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/common/html_blocks.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/common/html_re.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/html_block.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/heading.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/lheading.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_block/paragraph.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/parser_block.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/state_inline.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/text.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/linkify.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/newline.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/escape.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/backticks.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/emphasis.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/link.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/image.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/autolink.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/html_inline.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/entity.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/parser_inline.mjs","../node_modules/prosemirror-markdown/node_modules/linkify-it/lib/re.mjs","../node_modules/prosemirror-markdown/node_modules/linkify-it/index.mjs","../node_modules/punycode.js/punycode.es6.js","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/presets/default.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/presets/zero.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/presets/commonmark.mjs","../node_modules/prosemirror-markdown/node_modules/markdown-it/lib/index.mjs","../node_modules/prosemirror-markdown/dist/index.js","../node_modules/markdown-it/lib/common/entities.js","../node_modules/uc.micro/categories/P/regex.js","../node_modules/mdurl/encode.js","../node_modules/mdurl/decode.js","../node_modules/mdurl/format.js","../node_modules/mdurl/parse.js","../node_modules/mdurl/index.js","../node_modules/uc.micro/properties/Any/regex.js","../node_modules/uc.micro/categories/Cc/regex.js","../node_modules/uc.micro/categories/Cf/regex.js","../node_modules/uc.micro/categories/Z/regex.js","../node_modules/uc.micro/index.js","../node_modules/markdown-it/lib/common/utils.js","../node_modules/markdown-it/lib/helpers/parse_link_label.js","../node_modules/markdown-it/lib/helpers/parse_link_destination.js","../node_modules/markdown-it/lib/helpers/parse_link_title.js","../node_modules/markdown-it/lib/helpers/index.js","../node_modules/markdown-it/lib/renderer.js","../node_modules/markdown-it/lib/ruler.js","../node_modules/markdown-it/lib/rules_core/normalize.js","../node_modules/markdown-it/lib/rules_core/block.js","../node_modules/markdown-it/lib/rules_core/inline.js","../node_modules/markdown-it/lib/rules_core/linkify.js","../node_modules/markdown-it/lib/rules_core/replacements.js","../node_modules/markdown-it/lib/rules_core/smartquotes.js","../node_modules/markdown-it/lib/rules_core/text_join.js","../node_modules/markdown-it/lib/token.js","../node_modules/markdown-it/lib/rules_core/state_core.js","../node_modules/markdown-it/lib/parser_core.js","../node_modules/markdown-it/lib/rules_block/table.js","../node_modules/markdown-it/lib/rules_block/code.js","../node_modules/markdown-it/lib/rules_block/fence.js","../node_modules/markdown-it/lib/rules_block/blockquote.js","../node_modules/markdown-it/lib/rules_block/hr.js","../node_modules/markdown-it/lib/rules_block/list.js","../node_modules/markdown-it/lib/rules_block/reference.js","../node_modules/markdown-it/lib/common/html_blocks.js","../node_modules/markdown-it/lib/common/html_re.js","../node_modules/markdown-it/lib/rules_block/html_block.js","../node_modules/markdown-it/lib/rules_block/heading.js","../node_modules/markdown-it/lib/rules_block/lheading.js","../node_modules/markdown-it/lib/rules_block/paragraph.js","../node_modules/markdown-it/lib/rules_block/state_block.js","../node_modules/markdown-it/lib/parser_block.js","../node_modules/markdown-it/lib/rules_inline/text.js","../node_modules/markdown-it/lib/rules_inline/linkify.js","../node_modules/markdown-it/lib/rules_inline/newline.js","../node_modules/markdown-it/lib/rules_inline/escape.js","../node_modules/markdown-it/lib/rules_inline/backticks.js","../node_modules/markdown-it/lib/rules_inline/strikethrough.js","../node_modules/markdown-it/lib/rules_inline/emphasis.js","../node_modules/markdown-it/lib/rules_inline/link.js","../node_modules/markdown-it/lib/rules_inline/image.js","../node_modules/markdown-it/lib/rules_inline/autolink.js","../node_modules/markdown-it/lib/rules_inline/html_inline.js","../node_modules/markdown-it/lib/rules_inline/entity.js","../node_modules/markdown-it/lib/rules_inline/balance_pairs.js","../node_modules/markdown-it/lib/rules_inline/fragments_join.js","../node_modules/markdown-it/lib/rules_inline/state_inline.js","../node_modules/markdown-it/lib/parser_inline.js","../node_modules/linkify-it/lib/re.js","../node_modules/linkify-it/index.js","../node_modules/punycode/punycode.js","../node_modules/markdown-it/lib/presets/default.js","../node_modules/markdown-it/lib/presets/zero.js","../node_modules/markdown-it/lib/presets/commonmark.js","../node_modules/markdown-it/lib/index.js","../node_modules/markdown-it/index.js","../node_modules/@hedgedoc/markdown-it-task-lists/dist/index.mjs","../node_modules/requires-port/index.js","../node_modules/querystringify/index.js","../node_modules/url-parse/index.js","../node_modules/@quartzy/markdown-it-mentions/dist/index.js","../src/markdownit/underline.js","../src/markdownit/splitMixedLists.js","../node_modules/markdown-it-container/index.mjs","../src/markdownit/callouts.js","../src/markdownit/details.ts","../src/markdownit/preview.js","../src/markdownit/hardbreak.js","../src/markdownit/keepSyntax.js","../node_modules/markdown-it-front-matter/index.js","../node_modules/markdown-it-image-figures/dist/markdown-it-images-figures.mjs","../src/markdownit/index.js","../src/extensions/transformPastedHTML.js","../src/extensions/Markdown.js","../node_modules/@tiptap/extension-text/dist/index.js","../src/nodes/PlainTextDocument.js","../src/extensions/PlainText.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/arduino.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/bash.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/c.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/cpp.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/csharp.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/css.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/diff.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/go.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/graphql.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/ini.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/java.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/javascript.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/json.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/kotlin.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/less.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/lua.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/makefile.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/markdown.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/objectivec.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/perl.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/php.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/php-template.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/plaintext.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/python.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/python-repl.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/r.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/ruby.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/rust.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/scss.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/shell.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/sql.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/swift.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/typescript.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/vbnet.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/wasm.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/xml.js","../node_modules/lowlight/node_modules/highlight.js/es/languages/yaml.js","../node_modules/lowlight/node_modules/highlight.js/lib/core.js","../node_modules/format/format.js","../node_modules/fault/index.js","../node_modules/lowlight/lib/core.js","../node_modules/lowlight/lib/common.js","../node_modules/@tiptap/extension-blockquote/dist/index.js","../node_modules/@tiptap/extension-list-item/dist/index.js","../node_modules/@tiptap/extension-text-style/dist/index.js","../node_modules/@tiptap/extension-bullet-list/dist/index.js","../src/commands/listInputRule.js","../src/nodes/BulletList.js","../src/nodes/Callout.vue","../src/nodes/Callouts.js","../node_modules/@tiptap/extension-character-count/dist/index.js","../node_modules/@tiptap/extension-code/dist/index.js","../node_modules/@tiptap/extension-code-block/dist/index.js","../node_modules/@tiptap/extension-code-block-lowlight/dist/index.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/vue-material-design-icons/ViewSplitVertical.vue","../node_modules/vue-material-design-icons/CodeBraces.vue","../node_modules/vue-material-design-icons/Eye.vue","../node_modules/vue-material-design-icons/Marker.vue","../node_modules/vue-material-design-icons/Help.vue","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/mixins/CopyToClipboardMixin.js","../src/nodes/CodeBlockView.vue","../src/nodes/CodeBlock.js","../src/nodes/DetailsContent.vue","../src/nodes/DetailsContent.js","../src/nodes/DetailsSummary.js","../node_modules/vue-material-design-icons/TriangleSmallDown.vue","../src/nodes/DetailsView.vue","../src/nodes/Details.js","../node_modules/@tiptap/extension-document/dist/index.js","../node_modules/prosemirror-dropcursor/dist/index.js","../node_modules/@tiptap/extension-dropcursor/dist/index.js","../node_modules/prosemirror-tables/dist/index.js","../node_modules/@tiptap/extension-table/dist/index.js","../src/nodes/Table/TableCaption.js","../node_modules/@tiptap/extension-table-cell/dist/index.js","../src/nodes/Table/TableCell.js","../node_modules/@tiptap/extension-table-header/dist/index.js","../src/nodes/Table/TableHeader.js","../node_modules/@tiptap/extension-table-row/dist/index.js","../src/nodes/Table/TableRow.js","../src/nodes/Table/TableHeadRow.js","../src/nodes/Table/Table.js","../src/nodes/Table/TableView.vue","../src/nodes/Table/TableCellView.vue","../src/nodes/Table/TableHeaderView.vue","../src/nodes/EditableTable.js","../src/components/Suggestion/suggestions.js","../src/components/Suggestion/Emoji/EmojiList.vue","../src/components/Suggestion/Emoji/suggestions.js","../src/nodes/FrontMatter.js","../node_modules/prosemirror-gapcursor/dist/index.js","../node_modules/@tiptap/extension-gapcursor/dist/index.js","../node_modules/@tiptap/extension-hard-break/dist/index.js","../src/nodes/HardBreak.js","../node_modules/@tiptap/extension-heading/dist/index.js","../node_modules/slug/slug.js","../src/plugins/extractHeadings.js","../src/plugins/headingAnchor.js","../src/nodes/Heading.js","../node_modules/@tiptap/extension-horizontal-rule/dist/index.js","../node_modules/@tiptap/extension-image/dist/index.js","../node_modules/vue-click-outside/index.js","../src/components/ImageView/ShowImageModal.vue","../src/nodes/ImageView.vue","../src/nodes/Image.js","../src/nodes/ImageInline.js","../src/extensions/KeepSyntax.js","../src/components/Suggestion/SuggestionListWrapper.vue","../src/components/Suggestion/LinkPicker/LinkPickerList.vue","../src/components/Menu/keys.js","../src/components/Menu/utils.js","../src/components/Menu/BaseActionEntry.js","../src/components/Menu/MenuBar.provider.js","../src/components/Menu/EmojiPickerAction.vue","../src/components/Menu/ActionAttachmentUpload.vue","../src/components/Menu/ActionInsertLink.vue","../src/components/Menu/entries.js","../src/components/Suggestion/LinkPicker/suggestions.js","../src/extensions/LinkPicker.js","../src/helpers/links.js","../node_modules/vue-material-design-icons/Pencil.vue","../src/components/Link/LinkBubbleView.vue","../src/plugins/LinkBubblePluginView.js","../src/plugins/linkHelpers.js","../src/plugins/links.js","../src/extensions/LinkBubble.js","../node_modules/@tiptap/extension-mention/dist/index.js","../src/extensions/Mention.vue","../src/extensions/Mention.js","../src/plugins/searchQuery.js","../src/plugins/searchDecorations.js","../src/extensions/Search.js","../node_modules/@tiptap/extension-ordered-list/dist/index.js","../src/nodes/OrderedList.js","../node_modules/@tiptap/extension-paragraph/dist/index.js","../src/plugins/extractLinkParagraphs.js","../node_modules/vue-material-design-icons/DotsVertical.vue","../src/components/Editor/PreviewOptions.vue","../src/plugins/previewOptions.js","../src/nodes/Paragraph.js","../node_modules/@tiptap/extension-placeholder/dist/index.js","../src/nodes/Preview.vue","../src/nodes/Preview.js","../node_modules/@tiptap/extension-task-item/dist/index.js","../src/helpers/prosemirrorUtils.js","../src/nodes/TaskItem.js","../node_modules/@tiptap/extension-task-list/dist/index.js","../src/nodes/TaskList.js","../src/nodes/TrailingNode.js","../node_modules/@tiptap/extension-italic/dist/index.js","../node_modules/@tiptap/extension-link/dist/index.js","../src/marks/Link.js","../node_modules/@tiptap/extension-strike/dist/index.js","../src/marks/Strike.js","../node_modules/@tiptap/extension-bold/dist/index.js","../src/marks/Strong.js","../node_modules/@tiptap/extension-underline/dist/index.js","../src/marks/Underline.js","../src/marks/index.js","../src/extensions/RichText.js"],"sourcesContent":["import { basename } from \"path\";\nimport Vue, { toRaw, defineComponent, onMounted, onUnmounted } from \"vue\";\nimport { t, n, a as normalizeComponent } from \"./chunks/_plugin-vue2_normalizer-CQ6iBklL.mjs\";\nimport { h, f, g, d, e, c, T, b, l, k, s, i, m, j } from \"./chunks/_plugin-vue2_normalizer-CQ6iBklL.mjs\";\nimport NcDialog from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport NcNoteCard from \"@nextcloud/vue/dist/Components/NcNoteCard.js\";\nconst spawnDialog = (dialog, props, onClose = () => {\n}) => {\n const el = document.createElement(\"div\");\n const container = document.querySelector(props == null ? void 0 : props.container) || document.body;\n container.appendChild(el);\n const vue = new Vue({\n el,\n name: \"VueDialogHelper\",\n render: (h2) => h2(dialog, {\n props,\n on: {\n close: (...rest) => {\n onClose(...rest.map((v) => toRaw(v)));\n vue.$destroy();\n }\n }\n })\n });\n return vue;\n};\nconst IconMove = '';\nconst IconCopy = '';\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar FilePickerType = /* @__PURE__ */ ((FilePickerType2) => {\n FilePickerType2[FilePickerType2[\"Choose\"] = 1] = \"Choose\";\n FilePickerType2[FilePickerType2[\"Move\"] = 2] = \"Move\";\n FilePickerType2[FilePickerType2[\"Copy\"] = 3] = \"Copy\";\n FilePickerType2[FilePickerType2[\"CopyMove\"] = 4] = \"CopyMove\";\n FilePickerType2[FilePickerType2[\"Custom\"] = 5] = \"Custom\";\n return FilePickerType2;\n})(FilePickerType || {});\nclass FilePickerClosed extends Error {\n}\nclass FilePicker {\n constructor(title, multiSelect, mimeTypeFilter, directoriesAllowed, buttons, path, filter, container, disabledNavigation = false) {\n __publicField(this, \"title\");\n __publicField(this, \"multiSelect\");\n __publicField(this, \"mimeTypeFilter\");\n __publicField(this, \"directoriesAllowed\");\n __publicField(this, \"buttons\");\n __publicField(this, \"path\");\n __publicField(this, \"filter\");\n __publicField(this, \"container\");\n __publicField(this, \"disabledNavigation\");\n this.title = title;\n this.multiSelect = multiSelect;\n this.mimeTypeFilter = mimeTypeFilter;\n this.directoriesAllowed = directoriesAllowed;\n this.path = path;\n this.filter = filter;\n this.buttons = buttons;\n this.container = container;\n this.disabledNavigation = disabledNavigation;\n }\n /**\n * Pick files using the FilePicker\n *\n * @return Promise with array of picked files or rejected promise on close without picking\n */\n async pick() {\n const { FilePickerVue } = await import(\"./chunks/index-CWnkpNim.mjs\");\n return new Promise((resolve, reject) => {\n spawnDialog(FilePickerVue, {\n allowPickDirectory: this.directoriesAllowed,\n buttons: this.buttons,\n container: this.container,\n name: this.title,\n path: this.path,\n mimetypeFilter: this.mimeTypeFilter,\n multiselect: this.multiSelect,\n filterFn: this.filter,\n disabledNavigation: this.disabledNavigation\n }, (...rest) => {\n var _a;\n const [nodes] = rest;\n if (!Array.isArray(nodes) || nodes.length === 0) {\n reject(new FilePickerClosed(\"FilePicker: No nodes selected\"));\n } else {\n if (this.multiSelect) {\n resolve(nodes.map((node) => node.path));\n } else {\n resolve(((_a = nodes[0]) == null ? void 0 : _a.path) || \"/\");\n }\n }\n });\n });\n }\n}\nclass FilePickerBuilder {\n /**\n * Construct a new FilePicker\n *\n * @param title Title of the FilePicker\n */\n constructor(title) {\n __publicField(this, \"title\");\n __publicField(this, \"multiSelect\", false);\n __publicField(this, \"mimeTypeFilter\", []);\n __publicField(this, \"directoriesAllowed\", false);\n __publicField(this, \"path\");\n __publicField(this, \"filter\");\n __publicField(this, \"buttons\", []);\n __publicField(this, \"container\");\n __publicField(this, \"disabledNavigation\", false);\n this.title = title;\n }\n /**\n * Set the container where the FilePicker will be mounted\n * By default 'body' is used\n *\n * @param container The dialog container\n */\n setContainer(container) {\n this.container = container;\n return this;\n }\n /**\n * Enable or disable picking multiple files\n *\n * @param ms True to enable picking multiple files, false otherwise\n */\n setMultiSelect(ms) {\n this.multiSelect = ms;\n return this;\n }\n /**\n * Add allowed MIME type\n *\n * @param filter MIME type to allow\n */\n addMimeTypeFilter(filter) {\n this.mimeTypeFilter.push(filter);\n return this;\n }\n /**\n * Set allowed MIME types\n *\n * @param filter Array of allowed MIME types\n */\n setMimeTypeFilter(filter) {\n this.mimeTypeFilter = filter;\n return this;\n }\n /**\n * Add a button to the FilePicker\n * Note: This overrides any previous `setButtonFactory` call\n *\n * @param button The button\n */\n addButton(button) {\n if (typeof this.buttons === \"function\") {\n console.warn(\"FilePicker buttons were set to factory, now overwritten with button object.\");\n this.buttons = [];\n }\n this.buttons.push(button);\n return this;\n }\n /**\n * Set the button factory which is used to generate buttons from current view, path and selected nodes\n * Note: This overrides any previous `addButton` call\n *\n * @param factory The button factory\n */\n setButtonFactory(factory) {\n this.buttons = factory;\n return this;\n }\n /**\n * Set FilePicker type based on legacy file picker types\n * @param type The legacy filepicker type to emulate\n * @deprecated Use `addButton` or `setButtonFactory` instead as with setType you do not know which button was pressed\n */\n setType(type) {\n this.buttons = (nodes, path) => {\n var _a, _b, _c;\n const buttons = [];\n const node = ((_b = (_a = nodes == null ? void 0 : nodes[0]) == null ? void 0 : _a.attributes) == null ? void 0 : _b.displayName) || ((_c = nodes == null ? void 0 : nodes[0]) == null ? void 0 : _c.basename);\n const target = node || basename(path);\n if (type === 1) {\n let label = t(\"Choose\");\n if (nodes.length === 1) {\n label = t(\"Choose {file}\", { file: node });\n } else if (this.multiSelect) {\n label = n(\"Choose %n file\", \"Choose %n files\", nodes.length);\n }\n buttons.push({\n callback: () => {\n },\n type: \"primary\",\n label\n });\n }\n if (type === 4 || type === 3) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Copy to {target}\", { target }) : t(\"Copy\"),\n type: \"primary\",\n icon: IconCopy\n });\n }\n if (type === 2 || type === 4) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Move to {target}\", { target }) : t(\"Move\"),\n type: type === 2 ? \"primary\" : \"secondary\",\n icon: IconMove\n });\n }\n return buttons;\n };\n return this;\n }\n /**\n * Allow to pick directories besides files\n *\n * @param allow True to allow picking directories\n */\n allowDirectories(allow = true) {\n this.directoriesAllowed = allow;\n return this;\n }\n /**\n * Set starting path of the FilePicker\n *\n * @param path Path to start from picking\n */\n startAt(path) {\n this.path = path;\n return this;\n }\n /**\n * Add filter function to filter file list of FilePicker\n *\n * @param filter Filter function to apply\n */\n setFilter(filter) {\n this.filter = filter;\n return this;\n }\n /**\n * Allow to pick directories besides files\n *\n * @param allow True to allow picking directories\n */\n disableNavigation() {\n this.disabledNavigation = true;\n return this;\n }\n /**\n * Construct the configured FilePicker\n */\n build() {\n return new FilePicker(\n this.title,\n this.multiSelect,\n this.mimeTypeFilter,\n this.directoriesAllowed,\n this.buttons,\n this.path,\n this.filter,\n this.container,\n this.disabledNavigation\n );\n }\n}\nfunction getFilePickerBuilder(title) {\n return new FilePickerBuilder(title);\n}\nvar DialogSeverity = /* @__PURE__ */ ((DialogSeverity2) => {\n DialogSeverity2[\"Info\"] = \"info\";\n DialogSeverity2[\"Warning\"] = \"warning\";\n DialogSeverity2[\"Error\"] = \"error\";\n return DialogSeverity2;\n})(DialogSeverity || {});\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"GenericDialog\",\n props: {\n name: null,\n text: null,\n html: null,\n buttons: null,\n severity: null\n },\n setup(__props) {\n const props = __props;\n const handleUnload = () => \"\".concat(props.name, \": \").concat(props.text);\n onMounted(() => window.addEventListener(\"unload\", handleUnload));\n onUnmounted(() => window.removeEventListener(\"unload\", handleUnload));\n return { __sfc: true, props, handleUnload, NcDialog, NcNoteCard };\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(_setup.NcDialog, { attrs: { \"dialog-classes\": \"nc-generic-dialog\", \"buttons\": _vm.buttons, \"name\": _vm.name, \"message\": _vm.text }, on: { \"update:open\": function($event) {\n return _vm.$emit(\"close\");\n } } }, [_vm.severity ? _c(_setup.NcNoteCard, { attrs: { \"type\": _vm.severity } }, [_c(\"p\", { domProps: { \"textContent\": _vm._s(_vm.text) } })]) : _vm._e(), _vm.html ? _c(\"div\", { domProps: { \"innerHTML\": _vm._s(_vm.html) } }) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null,\n null,\n null\n);\nconst GenericDialog = __component__.exports;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar _name, _text, _buttons, _severity, _dialog, _html, _severity2, _text2, _name2, _buttons2;\nclass Dialog {\n constructor(name, text, buttons = [], severity) {\n __privateAdd(this, _name);\n __privateAdd(this, _text);\n __privateAdd(this, _buttons);\n __privateAdd(this, _severity);\n __privateAdd(this, _dialog);\n __privateAdd(this, _html);\n __privateSet(this, _name, name);\n __privateSet(this, _text, text);\n __privateSet(this, _buttons, buttons);\n __privateSet(this, _severity, severity);\n __privateSet(this, _dialog, void 0);\n __privateSet(this, _html, void 0);\n }\n /**\n * @deprecated DO NOT USE! It will be removed in the near future!\n * @param html HTML content\n */\n setHTML(html) {\n __privateSet(this, _html, html);\n return this;\n }\n /**\n * Spawn and show the dialog - if already open the previous instance will be destroyed\n * @return Promise that resolves when the dialog is answered successfully and rejects on close\n */\n show() {\n if (__privateGet(this, _dialog)) {\n __privateGet(this, _dialog).$destroy();\n }\n return new Promise((resolve) => {\n __privateSet(this, _dialog, spawnDialog(\n GenericDialog,\n {\n buttons: __privateGet(this, _buttons),\n name: __privateGet(this, _name),\n text: __privateGet(this, _text),\n severity: __privateGet(this, _severity),\n html: __privateGet(this, _html)\n },\n resolve\n ));\n });\n }\n /**\n * Hide and destroy the current dialog instance\n */\n hide() {\n var _a;\n (_a = __privateGet(this, _dialog)) == null ? void 0 : _a.$destroy();\n }\n}\n_name = /* @__PURE__ */ new WeakMap();\n_text = /* @__PURE__ */ new WeakMap();\n_buttons = /* @__PURE__ */ new WeakMap();\n_severity = /* @__PURE__ */ new WeakMap();\n_dialog = /* @__PURE__ */ new WeakMap();\n_html = /* @__PURE__ */ new WeakMap();\nclass DialogBuilder {\n constructor(name) {\n __privateAdd(this, _severity2);\n __privateAdd(this, _text2);\n __privateAdd(this, _name2);\n __privateAdd(this, _buttons2);\n __privateSet(this, _severity2, void 0);\n __privateSet(this, _text2, \"\");\n __privateSet(this, _name2, name != null ? name : \"\");\n __privateSet(this, _buttons2, []);\n }\n /**\n * Set dialog name\n * @param name The name or headline of the dialog\n */\n setName(name) {\n __privateSet(this, _name2, name);\n return this;\n }\n /**\n * Set the dialog text\n * @param text Main text of the dialog\n */\n setText(text) {\n __privateSet(this, _text2, text);\n return this;\n }\n /**\n * Set the severity of the dialog\n * @param severity Severity of the dialog\n */\n setSeverity(severity) {\n __privateSet(this, _severity2, severity);\n return this;\n }\n /**\n * Set buttons from array\n * @param buttons Either an array of dialog buttons\n */\n setButtons(buttons) {\n if (__privateGet(this, _buttons2).length > 0) {\n console.warn(\"[@nextcloud/dialogs] Dialog buttons are already set - this overrides previous buttons.\");\n }\n __privateSet(this, _buttons2, buttons);\n return this;\n }\n /**\n * Add a single button\n * @param button Button to add\n */\n addButton(button) {\n __privateGet(this, _buttons2).push(button);\n return this;\n }\n build() {\n return new Dialog(__privateGet(this, _name2), __privateGet(this, _text2), __privateGet(this, _buttons2), __privateGet(this, _severity2));\n }\n}\n_severity2 = /* @__PURE__ */ new WeakMap();\n_text2 = /* @__PURE__ */ new WeakMap();\n_name2 = /* @__PURE__ */ new WeakMap();\n_buttons2 = /* @__PURE__ */ new WeakMap();\nfunction getDialogBuilder(name) {\n return new DialogBuilder(name);\n}\nexport {\n Dialog,\n DialogBuilder,\n DialogSeverity,\n FilePicker,\n FilePickerBuilder,\n FilePickerClosed,\n FilePickerType,\n h as TOAST_ARIA_LIVE_ASSERTIVE,\n f as TOAST_ARIA_LIVE_OFF,\n g as TOAST_ARIA_LIVE_POLITE,\n d as TOAST_DEFAULT_TIMEOUT,\n e as TOAST_PERMANENT_TIMEOUT,\n c as TOAST_UNDO_TIMEOUT,\n T as ToastAriaLive,\n b as ToastType,\n getDialogBuilder,\n getFilePickerBuilder,\n l as showError,\n k as showInfo,\n s as showMessage,\n i as showSuccess,\n m as showUndo,\n j as showWarning,\n spawnDialog\n};\n","// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\nexport default OrderedMap;\n","import OrderedMap from 'orderedmap';\n\nfunction findDiffStart(a, b, pos) {\n for (let i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n return a.childCount == b.childCount ? null : pos;\n let childA = a.child(i), childB = b.child(i);\n if (childA == childB) {\n pos += childA.nodeSize;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return pos;\n if (childA.isText && childA.text != childB.text) {\n for (let j = 0; childA.text[j] == childB.text[j]; j++)\n pos++;\n return pos;\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null)\n return inner;\n }\n pos += childA.nodeSize;\n }\n}\nfunction findDiffEnd(a, b, posA, posB) {\n for (let iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n return iA == iB ? null : { a: posA, b: posB };\n let childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size;\n posB -= size;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return { a: posA, b: posB };\n if (childA.isText && childA.text != childB.text) {\n let same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++;\n posA--;\n posB--;\n }\n return { a: posA, b: posB };\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner)\n return inner;\n }\n posA -= size;\n posB -= size;\n }\n}\n\n/**\nA fragment represents a node's collection of child nodes.\n\nLike nodes, fragments are persistent data structures, and you\nshould not mutate them or their content. Rather, you create new\ninstances whenever needed. The API tries to make this easy.\n*/\nclass Fragment {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n content, size) {\n this.content = content;\n this.size = size || 0;\n if (size == null)\n for (let i = 0; i < content.length; i++)\n this.size += content[i].nodeSize;\n }\n /**\n Invoke a callback for all descendant nodes between the given two\n positions (relative to start of this fragment). Doesn't descend\n into a node when the callback returns `false`.\n */\n nodesBetween(from, to, f, nodeStart = 0, parent) {\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) {\n let start = pos + 1;\n child.nodesBetween(Math.max(0, from - start), Math.min(child.content.size, to - start), f, nodeStart + start);\n }\n pos = end;\n }\n }\n /**\n Call the given callback for every descendant node. `pos` will be\n relative to the start of the fragment. The callback may return\n `false` to prevent traversal of a given node's children.\n */\n descendants(f) {\n this.nodesBetween(0, this.size, f);\n }\n /**\n Extract the text between `from` and `to`. See the same method on\n [`Node`](https://prosemirror.net/docs/ref/#model.Node.textBetween).\n */\n textBetween(from, to, blockSeparator, leafText) {\n let text = \"\", first = true;\n this.nodesBetween(from, to, (node, pos) => {\n let nodeText = node.isText ? node.text.slice(Math.max(from, pos) - pos, to - pos)\n : !node.isLeaf ? \"\"\n : leafText ? (typeof leafText === \"function\" ? leafText(node) : leafText)\n : node.type.spec.leafText ? node.type.spec.leafText(node)\n : \"\";\n if (node.isBlock && (node.isLeaf && nodeText || node.isTextblock) && blockSeparator) {\n if (first)\n first = false;\n else\n text += blockSeparator;\n }\n text += nodeText;\n }, 0);\n return text;\n }\n /**\n Create a new fragment containing the combined content of this\n fragment and the other.\n */\n append(other) {\n if (!other.size)\n return this;\n if (!this.size)\n return other;\n let last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++)\n content.push(other.content[i]);\n return new Fragment(content, this.size + other.size);\n }\n /**\n Cut out the sub-fragment between the two given positions.\n */\n cut(from, to = this.size) {\n if (from == 0 && to == this.size)\n return this;\n let result = [], size = 0;\n if (to > from)\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos));\n else\n child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1));\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n }\n return new Fragment(result, size);\n }\n /**\n @internal\n */\n cutByIndex(from, to) {\n if (from == to)\n return Fragment.empty;\n if (from == 0 && to == this.content.length)\n return this;\n return new Fragment(this.content.slice(from, to));\n }\n /**\n Create a new fragment in which the node at the given index is\n replaced by the given node.\n */\n replaceChild(index, node) {\n let current = this.content[index];\n if (current == node)\n return this;\n let copy = this.content.slice();\n let size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size);\n }\n /**\n Create a new fragment by prepending the given node to this\n fragment.\n */\n addToStart(node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize);\n }\n /**\n Create a new fragment by appending the given node to this\n fragment.\n */\n addToEnd(node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize);\n }\n /**\n Compare this fragment to another one.\n */\n eq(other) {\n if (this.content.length != other.content.length)\n return false;\n for (let i = 0; i < this.content.length; i++)\n if (!this.content[i].eq(other.content[i]))\n return false;\n return true;\n }\n /**\n The first child of the fragment, or `null` if it is empty.\n */\n get firstChild() { return this.content.length ? this.content[0] : null; }\n /**\n The last child of the fragment, or `null` if it is empty.\n */\n get lastChild() { return this.content.length ? this.content[this.content.length - 1] : null; }\n /**\n The number of child nodes in this fragment.\n */\n get childCount() { return this.content.length; }\n /**\n Get the child node at the given index. Raise an error when the\n index is out of range.\n */\n child(index) {\n let found = this.content[index];\n if (!found)\n throw new RangeError(\"Index \" + index + \" out of range for \" + this);\n return found;\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) {\n return this.content[index] || null;\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) {\n for (let i = 0, p = 0; i < this.content.length; i++) {\n let child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n }\n /**\n Find the first position at which this fragment and another\n fragment differ, or `null` if they are the same.\n */\n findDiffStart(other, pos = 0) {\n return findDiffStart(this, other, pos);\n }\n /**\n Find the first position, searching from the end, at which this\n fragment and the given fragment differ, or `null` if they are\n the same. Since this position will not be the same in both\n nodes, an object with two separate positions is returned.\n */\n findDiffEnd(other, pos = this.size, otherPos = other.size) {\n return findDiffEnd(this, other, pos, otherPos);\n }\n /**\n Find the index and inner offset corresponding to a given relative\n position in this fragment. The result object will be reused\n (overwritten) the next time the function is called. @internal\n */\n findIndex(pos, round = -1) {\n if (pos == 0)\n return retIndex(0, pos);\n if (pos == this.size)\n return retIndex(this.content.length, pos);\n if (pos > this.size || pos < 0)\n throw new RangeError(`Position ${pos} outside of fragment (${this})`);\n for (let i = 0, curPos = 0;; i++) {\n let cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0)\n return retIndex(i + 1, end);\n return retIndex(i, curPos);\n }\n curPos = end;\n }\n }\n /**\n Return a debugging string that describes this fragment.\n */\n toString() { return \"<\" + this.toStringInner() + \">\"; }\n /**\n @internal\n */\n toStringInner() { return this.content.join(\", \"); }\n /**\n Create a JSON-serializeable representation of this fragment.\n */\n toJSON() {\n return this.content.length ? this.content.map(n => n.toJSON()) : null;\n }\n /**\n Deserialize a fragment from its JSON representation.\n */\n static fromJSON(schema, value) {\n if (!value)\n return Fragment.empty;\n if (!Array.isArray(value))\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n return new Fragment(value.map(schema.nodeFromJSON));\n }\n /**\n Build a fragment from an array of nodes. Ensures that adjacent\n text nodes with the same marks are joined together.\n */\n static fromArray(array) {\n if (!array.length)\n return Fragment.empty;\n let joined, size = 0;\n for (let i = 0; i < array.length; i++) {\n let node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined)\n joined = array.slice(0, i);\n joined[joined.length - 1] = node\n .withText(joined[joined.length - 1].text + node.text);\n }\n else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size);\n }\n /**\n Create a fragment from something that can be interpreted as a\n set of nodes. For `null`, it returns the empty fragment. For a\n fragment, the fragment itself. For a node or array of nodes, a\n fragment containing those nodes.\n */\n static from(nodes) {\n if (!nodes)\n return Fragment.empty;\n if (nodes instanceof Fragment)\n return nodes;\n if (Array.isArray(nodes))\n return this.fromArray(nodes);\n if (nodes.attrs)\n return new Fragment([nodes], nodes.nodeSize);\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n }\n}\n/**\nAn empty fragment. Intended to be reused whenever a node doesn't\ncontain anything (rather than allocating a new empty fragment for\neach leaf node).\n*/\nFragment.empty = new Fragment([], 0);\nconst found = { index: 0, offset: 0 };\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found;\n}\n\nfunction compareDeep(a, b) {\n if (a === b)\n return true;\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\"))\n return false;\n let array = Array.isArray(a);\n if (Array.isArray(b) != array)\n return false;\n if (array) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compareDeep(a[i], b[i]))\n return false;\n }\n else {\n for (let p in a)\n if (!(p in b) || !compareDeep(a[p], b[p]))\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n }\n return true;\n}\n\n/**\nA mark is a piece of information that can be attached to a node,\nsuch as it being emphasized, in code font, or a link. It has a\ntype and optionally a set of attributes that provide further\ninformation (such as the target of the link). Marks are created\nthrough a `Schema`, which controls which types exist and which\nattributes they have.\n*/\nclass Mark {\n /**\n @internal\n */\n constructor(\n /**\n The type of this mark.\n */\n type, \n /**\n The attributes associated with this mark.\n */\n attrs) {\n this.type = type;\n this.attrs = attrs;\n }\n /**\n Given a set of marks, create a new set which contains this one as\n well, in the right position. If this mark is already in the set,\n the set itself is returned. If any marks that are set to be\n [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,\n those are replaced by this one.\n */\n addToSet(set) {\n let copy, placed = false;\n for (let i = 0; i < set.length; i++) {\n let other = set[i];\n if (this.eq(other))\n return set;\n if (this.type.excludes(other.type)) {\n if (!copy)\n copy = set.slice(0, i);\n }\n else if (other.type.excludes(this.type)) {\n return set;\n }\n else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy)\n copy = set.slice(0, i);\n copy.push(this);\n placed = true;\n }\n if (copy)\n copy.push(other);\n }\n }\n if (!copy)\n copy = set.slice();\n if (!placed)\n copy.push(this);\n return copy;\n }\n /**\n Remove this mark from the given set, returning a new set. If this\n mark is not in the set, the set itself is returned.\n */\n removeFromSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return set.slice(0, i).concat(set.slice(i + 1));\n return set;\n }\n /**\n Test whether this mark is in the given set of marks.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return true;\n return false;\n }\n /**\n Test whether this mark has the same type and attributes as\n another mark.\n */\n eq(other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs));\n }\n /**\n Convert this mark to a JSON-serializeable representation.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n return obj;\n }\n /**\n Deserialize a mark from JSON.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n let type = schema.marks[json.type];\n if (!type)\n throw new RangeError(`There is no mark type ${json.type} in this schema`);\n let mark = type.create(json.attrs);\n type.checkAttrs(mark.attrs);\n return mark;\n }\n /**\n Test whether two sets of marks are identical.\n */\n static sameSet(a, b) {\n if (a == b)\n return true;\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].eq(b[i]))\n return false;\n return true;\n }\n /**\n Create a properly sorted mark set from null, a single mark, or an\n unsorted array of marks.\n */\n static setFrom(marks) {\n if (!marks || Array.isArray(marks) && marks.length == 0)\n return Mark.none;\n if (marks instanceof Mark)\n return [marks];\n let copy = marks.slice();\n copy.sort((a, b) => a.type.rank - b.type.rank);\n return copy;\n }\n}\n/**\nThe empty set of marks.\n*/\nMark.none = [];\n\n/**\nError type raised by [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) when\ngiven an invalid replacement.\n*/\nclass ReplaceError extends Error {\n}\n/*\nReplaceError = function(this: any, message: string) {\n let err = Error.call(this, message)\n ;(err as any).__proto__ = ReplaceError.prototype\n return err\n} as any\n\nReplaceError.prototype = Object.create(Error.prototype)\nReplaceError.prototype.constructor = ReplaceError\nReplaceError.prototype.name = \"ReplaceError\"\n*/\n/**\nA slice represents a piece cut out of a larger document. It\nstores not only a fragment, but also the depth up to which nodes on\nboth side are ‘open’ (cut through).\n*/\nclass Slice {\n /**\n Create a slice. When specifying a non-zero open depth, you must\n make sure that there are nodes of at least that depth at the\n appropriate side of the fragment—i.e. if the fragment is an\n empty paragraph node, `openStart` and `openEnd` can't be greater\n than 1.\n \n It is not necessary for the content of open nodes to conform to\n the schema's content constraints, though it should be a valid\n start/end/middle for such a node, depending on which sides are\n open.\n */\n constructor(\n /**\n The slice's content.\n */\n content, \n /**\n The open depth at the start of the fragment.\n */\n openStart, \n /**\n The open depth at the end.\n */\n openEnd) {\n this.content = content;\n this.openStart = openStart;\n this.openEnd = openEnd;\n }\n /**\n The size this slice would add when inserted into a document.\n */\n get size() {\n return this.content.size - this.openStart - this.openEnd;\n }\n /**\n @internal\n */\n insertAt(pos, fragment) {\n let content = insertInto(this.content, pos + this.openStart, fragment);\n return content && new Slice(content, this.openStart, this.openEnd);\n }\n /**\n @internal\n */\n removeBetween(from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd);\n }\n /**\n Tests whether this slice is equal to another slice.\n */\n eq(other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd;\n }\n /**\n @internal\n */\n toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n }\n /**\n Convert a slice to a JSON-serializable representation.\n */\n toJSON() {\n if (!this.content.size)\n return null;\n let json = { content: this.content.toJSON() };\n if (this.openStart > 0)\n json.openStart = this.openStart;\n if (this.openEnd > 0)\n json.openEnd = this.openEnd;\n return json;\n }\n /**\n Deserialize a slice from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n return Slice.empty;\n let openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd);\n }\n /**\n Create a slice from a fragment by taking the maximum possible\n open value on both side of the fragment.\n */\n static maxOpen(fragment, openIsolating = true) {\n let openStart = 0, openEnd = 0;\n for (let n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild)\n openStart++;\n for (let n = fragment.lastChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.lastChild)\n openEnd++;\n return new Slice(fragment, openStart, openEnd);\n }\n}\n/**\nThe empty slice.\n*/\nSlice.empty = new Slice(Fragment.empty, 0, 0);\nfunction removeRange(content, from, to) {\n let { index, offset } = content.findIndex(from), child = content.maybeChild(index);\n let { index: indexTo, offset: offsetTo } = content.findIndex(to);\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText)\n throw new RangeError(\"Removing non-flat range\");\n return content.cut(0, from).append(content.cut(to));\n }\n if (index != indexTo)\n throw new RangeError(\"Removing non-flat range\");\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));\n}\nfunction insertInto(content, dist, insert, parent) {\n let { index, offset } = content.findIndex(dist), child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert))\n return null;\n return content.cut(0, dist).append(insert).append(content.cut(dist));\n }\n let inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner));\n}\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n throw new ReplaceError(\"Inserted content deeper than insertion position\");\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n throw new ReplaceError(\"Inconsistent open depths\");\n return replaceOuter($from, $to, slice, 0);\n}\nfunction replaceOuter($from, $to, slice, depth) {\n let index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n let inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner));\n }\n else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth));\n }\n else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n let parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)));\n }\n else {\n let { start, end } = prepareSliceForReplace(slice, $from);\n return close(node, replaceThreeWay($from, start, end, $to, depth));\n }\n}\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name);\n}\nfunction joinable($before, $after, depth) {\n let node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node;\n}\nfunction addNode(child, target) {\n let last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n target[last] = child.withText(target[last].text + child.text);\n else\n target.push(child);\n}\nfunction addRange($start, $end, depth, target) {\n let node = ($end || $start).node(depth);\n let startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n }\n else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (let i = startIndex; i < endIndex; i++)\n addNode(node.child(i), target);\n if ($end && $end.depth == depth && $end.textOffset)\n addNode($end.nodeBefore, target);\n}\nfunction close(node, content) {\n node.type.checkContent(content);\n return node.copy(content);\n}\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n let openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n let openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n let content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n }\n else {\n if (openStart)\n addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content);\n addRange($start, $end, depth, content);\n if (openEnd)\n addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction replaceTwoWay($from, $to, depth) {\n let content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n let type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction prepareSliceForReplace(slice, $along) {\n let extra = $along.depth - slice.openStart, parent = $along.node(extra);\n let node = parent.copy(slice.content);\n for (let i = extra - 1; i >= 0; i--)\n node = $along.node(i).copy(Fragment.from(node));\n return { start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra) };\n}\n\n/**\nYou can [_resolve_](https://prosemirror.net/docs/ref/#model.Node.resolve) a position to get more\ninformation about it. Objects of this class represent such a\nresolved position, providing various pieces of context\ninformation, and some helper methods.\n\nThroughout this interface, methods that take an optional `depth`\nparameter will interpret undefined as `this.depth` and negative\nnumbers as `this.depth + value`.\n*/\nclass ResolvedPos {\n /**\n @internal\n */\n constructor(\n /**\n The position that was resolved.\n */\n pos, \n /**\n @internal\n */\n path, \n /**\n The offset this position has into its parent node.\n */\n parentOffset) {\n this.pos = pos;\n this.path = path;\n this.parentOffset = parentOffset;\n this.depth = path.length / 3 - 1;\n }\n /**\n @internal\n */\n resolveDepth(val) {\n if (val == null)\n return this.depth;\n if (val < 0)\n return this.depth + val;\n return val;\n }\n /**\n The parent node that the position points into. Note that even if\n a position points into a text node, that node is not considered\n the parent—text nodes are ‘flat’ in this model, and have no content.\n */\n get parent() { return this.node(this.depth); }\n /**\n The root node in which the position was resolved.\n */\n get doc() { return this.node(0); }\n /**\n The ancestor node at the given level. `p.node(p.depth)` is the\n same as `p.parent`.\n */\n node(depth) { return this.path[this.resolveDepth(depth) * 3]; }\n /**\n The index into the ancestor at the given level. If this points\n at the 3rd node in the 2nd paragraph on the top level, for\n example, `p.index(0)` is 1 and `p.index(1)` is 2.\n */\n index(depth) { return this.path[this.resolveDepth(depth) * 3 + 1]; }\n /**\n The index pointing after this position into the ancestor at the\n given level.\n */\n indexAfter(depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1);\n }\n /**\n The (absolute) position at the start of the node at the given\n level.\n */\n start(depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n }\n /**\n The (absolute) position at the end of the node at the given\n level.\n */\n end(depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size;\n }\n /**\n The (absolute) position directly before the wrapping node at the\n given level, or, when `depth` is `this.depth + 1`, the original\n position.\n */\n before(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position before the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1];\n }\n /**\n The (absolute) position directly after the wrapping node at the\n given level, or the original position when `depth` is `this.depth + 1`.\n */\n after(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position after the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize;\n }\n /**\n When this position points into a text node, this returns the\n distance between the position and the start of the text node.\n Will be zero for positions that point between nodes.\n */\n get textOffset() { return this.pos - this.path[this.path.length - 1]; }\n /**\n Get the node directly after the position, if any. If the position\n points into a text node, only the part of that node after the\n position is returned.\n */\n get nodeAfter() {\n let parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount)\n return null;\n let dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child;\n }\n /**\n Get the node directly before the position, if any. If the\n position points into a text node, only the part of that node\n before the position is returned.\n */\n get nodeBefore() {\n let index = this.index(this.depth);\n let dOff = this.pos - this.path[this.path.length - 1];\n if (dOff)\n return this.parent.child(index).cut(0, dOff);\n return index == 0 ? null : this.parent.child(index - 1);\n }\n /**\n Get the position at the given index in the parent node at the\n given depth (which defaults to `this.depth`).\n */\n posAtIndex(index, depth) {\n depth = this.resolveDepth(depth);\n let node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (let i = 0; i < index; i++)\n pos += node.child(i).nodeSize;\n return pos;\n }\n /**\n Get the marks at this position, factoring in the surrounding\n marks' [`inclusive`](https://prosemirror.net/docs/ref/#model.MarkSpec.inclusive) property. If the\n position is at the start of a non-empty node, the marks of the\n node after it (if any) are returned.\n */\n marks() {\n let parent = this.parent, index = this.index();\n // In an empty parent, return the empty array\n if (parent.content.size == 0)\n return Mark.none;\n // When inside a text node, just return the text node's marks\n if (this.textOffset)\n return parent.child(index).marks;\n let main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) {\n let tmp = main;\n main = other;\n other = tmp;\n }\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n let marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n Get the marks after the current position, if any, except those\n that are non-inclusive and not present at position `$end`. This\n is mostly useful for getting the set of marks to preserve after a\n deletion. Will return `null` if this position is at the end of\n its parent node or its parent node isn't a textblock (in which\n case no marks should be preserved).\n */\n marksAcross($end) {\n let after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline)\n return null;\n let marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n The depth up to which this position and the given (non-resolved)\n position share the same parent nodes.\n */\n sharedDepth(pos) {\n for (let depth = this.depth; depth > 0; depth--)\n if (this.start(depth) <= pos && this.end(depth) >= pos)\n return depth;\n return 0;\n }\n /**\n Returns a range based on the place where this position and the\n given position diverge around block content. If both point into\n the same textblock, for example, a range around that textblock\n will be returned. If they point into different blocks, the range\n around those blocks in their shared ancestor is returned. You can\n pass in an optional predicate that will be called with a parent\n node to see if a range into that parent is acceptable.\n */\n blockRange(other = this, pred) {\n if (other.pos < this.pos)\n return other.blockRange(this);\n for (let d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n return new NodeRange(this, other, d);\n return null;\n }\n /**\n Query whether the given position shares the same parent node.\n */\n sameParent(other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset;\n }\n /**\n Return the greater of this and the given position.\n */\n max(other) {\n return other.pos > this.pos ? other : this;\n }\n /**\n Return the smaller of this and the given position.\n */\n min(other) {\n return other.pos < this.pos ? other : this;\n }\n /**\n @internal\n */\n toString() {\n let str = \"\";\n for (let i = 1; i <= this.depth; i++)\n str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1);\n return str + \":\" + this.parentOffset;\n }\n /**\n @internal\n */\n static resolve(doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size))\n throw new RangeError(\"Position \" + pos + \" out of range\");\n let path = [];\n let start = 0, parentOffset = pos;\n for (let node = doc;;) {\n let { index, offset } = node.content.findIndex(parentOffset);\n let rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem)\n break;\n node = node.child(index);\n if (node.isText)\n break;\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset);\n }\n /**\n @internal\n */\n static resolveCached(doc, pos) {\n let cache = resolveCache.get(doc);\n if (cache) {\n for (let i = 0; i < cache.elts.length; i++) {\n let elt = cache.elts[i];\n if (elt.pos == pos)\n return elt;\n }\n }\n else {\n resolveCache.set(doc, cache = new ResolveCache);\n }\n let result = cache.elts[cache.i] = ResolvedPos.resolve(doc, pos);\n cache.i = (cache.i + 1) % resolveCacheSize;\n return result;\n }\n}\nclass ResolveCache {\n constructor() {\n this.elts = [];\n this.i = 0;\n }\n}\nconst resolveCacheSize = 12, resolveCache = new WeakMap();\n/**\nRepresents a flat range of content, i.e. one that starts and\nends in the same node.\n*/\nclass NodeRange {\n /**\n Construct a node range. `$from` and `$to` should point into the\n same node until at least the given `depth`, since a node range\n denotes an adjacent set of nodes in a single parent node.\n */\n constructor(\n /**\n A resolved position along the start of the content. May have a\n `depth` greater than this object's `depth` property, since\n these are the positions that were used to compute the range,\n not re-resolved positions directly at its boundaries.\n */\n $from, \n /**\n A position along the end of the content. See\n caveat for [`$from`](https://prosemirror.net/docs/ref/#model.NodeRange.$from).\n */\n $to, \n /**\n The depth of the node that this range points into.\n */\n depth) {\n this.$from = $from;\n this.$to = $to;\n this.depth = depth;\n }\n /**\n The position at the start of the range.\n */\n get start() { return this.$from.before(this.depth + 1); }\n /**\n The position at the end of the range.\n */\n get end() { return this.$to.after(this.depth + 1); }\n /**\n The parent node that the range points into.\n */\n get parent() { return this.$from.node(this.depth); }\n /**\n The start index of the range in the parent node.\n */\n get startIndex() { return this.$from.index(this.depth); }\n /**\n The end index of the range in the parent node.\n */\n get endIndex() { return this.$to.indexAfter(this.depth); }\n}\n\nconst emptyAttrs = Object.create(null);\n/**\nThis class represents a node in the tree that makes up a\nProseMirror document. So a document is an instance of `Node`, with\nchildren that are also instances of `Node`.\n\nNodes are persistent data structures. Instead of changing them, you\ncreate new ones with the content you want. Old ones keep pointing\nat the old document shape. This is made cheaper by sharing\nstructure between the old and new data as much as possible, which a\ntree shape like this (without back pointers) makes easy.\n\n**Do not** directly mutate the properties of a `Node` object. See\n[the guide](/docs/guide/#doc) for more information.\n*/\nclass Node {\n /**\n @internal\n */\n constructor(\n /**\n The type of node that this is.\n */\n type, \n /**\n An object mapping attribute names to values. The kind of\n attributes allowed and required are\n [determined](https://prosemirror.net/docs/ref/#model.NodeSpec.attrs) by the node type.\n */\n attrs, \n // A fragment holding the node's children.\n content, \n /**\n The marks (things like whether it is emphasized or part of a\n link) applied to this node.\n */\n marks = Mark.none) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.content = content || Fragment.empty;\n }\n /**\n The size of this node, as defined by the integer-based [indexing\n scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n amount of characters. For other leaf nodes, it is one. For\n non-leaf nodes, it is the size of the content plus two (the\n start and end token).\n */\n get nodeSize() { return this.isLeaf ? 1 : 2 + this.content.size; }\n /**\n The number of children that the node has.\n */\n get childCount() { return this.content.childCount; }\n /**\n Get the child node at the given index. Raises an error when the\n index is out of range.\n */\n child(index) { return this.content.child(index); }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) { return this.content.maybeChild(index); }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) { this.content.forEach(f); }\n /**\n Invoke a callback for all descendant nodes recursively between\n the given two positions that are relative to start of this\n node's content. The callback is invoked with the node, its\n position relative to the original node (method receiver),\n its parent node, and its child index. When the callback returns\n false for a given node, that node's children will not be\n recursed over. The last parameter can be used to specify a\n starting position to count from.\n */\n nodesBetween(from, to, f, startPos = 0) {\n this.content.nodesBetween(from, to, f, startPos, this);\n }\n /**\n Call the given callback for every descendant node. Doesn't\n descend into a node when the callback returns `false`.\n */\n descendants(f) {\n this.nodesBetween(0, this.content.size, f);\n }\n /**\n Concatenates all the text nodes found in this fragment and its\n children.\n */\n get textContent() {\n return (this.isLeaf && this.type.spec.leafText)\n ? this.type.spec.leafText(this)\n : this.textBetween(0, this.content.size, \"\");\n }\n /**\n Get all text between positions `from` and `to`. When\n `blockSeparator` is given, it will be inserted to separate text\n from different block nodes. If `leafText` is given, it'll be\n inserted for every non-text leaf node encountered, otherwise\n [`leafText`](https://prosemirror.net/docs/ref/#model.NodeSpec^leafText) will be used.\n */\n textBetween(from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText);\n }\n /**\n Returns this node's first child, or `null` if there are no\n children.\n */\n get firstChild() { return this.content.firstChild; }\n /**\n Returns this node's last child, or `null` if there are no\n children.\n */\n get lastChild() { return this.content.lastChild; }\n /**\n Test whether two nodes represent the same piece of document.\n */\n eq(other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content));\n }\n /**\n Compare the markup (type, attributes, and marks) of this node to\n those of another. Returns `true` if both have the same markup.\n */\n sameMarkup(other) {\n return this.hasMarkup(other.type, other.attrs, other.marks);\n }\n /**\n Check whether this node's markup correspond to the given type,\n attributes, and marks.\n */\n hasMarkup(type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none);\n }\n /**\n Create a new node with the same markup as this node, containing\n the given content (or empty, if no content is given).\n */\n copy(content = null) {\n if (content == this.content)\n return this;\n return new Node(this.type, this.attrs, content, this.marks);\n }\n /**\n Create a copy of this node, with the given set of marks instead\n of the node's own marks.\n */\n mark(marks) {\n return marks == this.marks ? this : new Node(this.type, this.attrs, this.content, marks);\n }\n /**\n Create a copy of this node with only the content between the\n given positions. If `to` is not given, it defaults to the end of\n the node.\n */\n cut(from, to = this.content.size) {\n if (from == 0 && to == this.content.size)\n return this;\n return this.copy(this.content.cut(from, to));\n }\n /**\n Cut out the part of the document between the given positions, and\n return it as a `Slice` object.\n */\n slice(from, to = this.content.size, includeParents = false) {\n if (from == to)\n return Slice.empty;\n let $from = this.resolve(from), $to = this.resolve(to);\n let depth = includeParents ? 0 : $from.sharedDepth(to);\n let start = $from.start(depth), node = $from.node(depth);\n let content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth);\n }\n /**\n Replace the part of the document between the given positions with\n the given slice. The slice must 'fit', meaning its open sides\n must be able to connect to the surrounding content, and its\n content nodes must be valid children for the node they are placed\n into. If any of this is violated, an error of type\n [`ReplaceError`](https://prosemirror.net/docs/ref/#model.ReplaceError) is thrown.\n */\n replace(from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice);\n }\n /**\n Find the node directly after the given position.\n */\n nodeAt(pos) {\n for (let node = this;;) {\n let { index, offset } = node.content.findIndex(pos);\n node = node.maybeChild(index);\n if (!node)\n return null;\n if (offset == pos || node.isText)\n return node;\n pos -= offset + 1;\n }\n }\n /**\n Find the (direct) child node after the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childAfter(pos) {\n let { index, offset } = this.content.findIndex(pos);\n return { node: this.content.maybeChild(index), index, offset };\n }\n /**\n Find the (direct) child node before the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childBefore(pos) {\n if (pos == 0)\n return { node: null, index: 0, offset: 0 };\n let { index, offset } = this.content.findIndex(pos);\n if (offset < pos)\n return { node: this.content.child(index), index, offset };\n let node = this.content.child(index - 1);\n return { node, index: index - 1, offset: offset - node.nodeSize };\n }\n /**\n Resolve the given position in the document, returning an\n [object](https://prosemirror.net/docs/ref/#model.ResolvedPos) with information about its context.\n */\n resolve(pos) { return ResolvedPos.resolveCached(this, pos); }\n /**\n @internal\n */\n resolveNoCache(pos) { return ResolvedPos.resolve(this, pos); }\n /**\n Test whether a given mark or mark type occurs in this document\n between the two given positions.\n */\n rangeHasMark(from, to, type) {\n let found = false;\n if (to > from)\n this.nodesBetween(from, to, node => {\n if (type.isInSet(node.marks))\n found = true;\n return !found;\n });\n return found;\n }\n /**\n True when this is a block (non-inline node)\n */\n get isBlock() { return this.type.isBlock; }\n /**\n True when this is a textblock node, a block node with inline\n content.\n */\n get isTextblock() { return this.type.isTextblock; }\n /**\n True when this node allows inline content.\n */\n get inlineContent() { return this.type.inlineContent; }\n /**\n True when this is an inline node (a text node or a node that can\n appear among text).\n */\n get isInline() { return this.type.isInline; }\n /**\n True when this is a text node.\n */\n get isText() { return this.type.isText; }\n /**\n True when this is a leaf node.\n */\n get isLeaf() { return this.type.isLeaf; }\n /**\n True when this is an atom, i.e. when it does not have directly\n editable content. This is usually the same as `isLeaf`, but can\n be configured with the [`atom` property](https://prosemirror.net/docs/ref/#model.NodeSpec.atom)\n on a node's spec (typically used when the node is displayed as\n an uneditable [node view](https://prosemirror.net/docs/ref/#view.NodeView)).\n */\n get isAtom() { return this.type.isAtom; }\n /**\n Return a string representation of this node for debugging\n purposes.\n */\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n let name = this.type.name;\n if (this.content.size)\n name += \"(\" + this.content.toStringInner() + \")\";\n return wrapMarks(this.marks, name);\n }\n /**\n Get the content match in this node at the given index.\n */\n contentMatchAt(index) {\n let match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match)\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n return match;\n }\n /**\n Test whether replacing the range between `from` and `to` (by\n child index) with the given replacement fragment (which defaults\n to the empty fragment) would leave the node's content valid. You\n can optionally pass `start` and `end` indices into the\n replacement fragment.\n */\n canReplace(from, to, replacement = Fragment.empty, start = 0, end = replacement.childCount) {\n let one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n let two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd)\n return false;\n for (let i = start; i < end; i++)\n if (!this.type.allowsMarks(replacement.child(i).marks))\n return false;\n return true;\n }\n /**\n Test whether replacing the range `from` to `to` (by index) with\n a node of the given type would leave the node's content valid.\n */\n canReplaceWith(from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks))\n return false;\n let start = this.contentMatchAt(from).matchType(type);\n let end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false;\n }\n /**\n Test whether the given node's content could be appended to this\n node. If that node is empty, this will only return true if there\n is at least one node type that can appear in both nodes (to avoid\n merging completely incompatible nodes).\n */\n canAppend(other) {\n if (other.content.size)\n return this.canReplace(this.childCount, this.childCount, other.content);\n else\n return this.type.compatibleContent(other.type);\n }\n /**\n Check whether this node and its descendants conform to the\n schema, and raise an exception when they do not.\n */\n check() {\n this.type.checkContent(this.content);\n this.type.checkAttrs(this.attrs);\n let copy = Mark.none;\n for (let i = 0; i < this.marks.length; i++) {\n let mark = this.marks[i];\n mark.type.checkAttrs(mark.attrs);\n copy = mark.addToSet(copy);\n }\n if (!Mark.sameSet(copy, this.marks))\n throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(m => m.type.name)}`);\n this.content.forEach(node => node.check());\n }\n /**\n Return a JSON-serializeable representation of this node.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n if (this.content.size)\n obj.content = this.content.toJSON();\n if (this.marks.length)\n obj.marks = this.marks.map(n => n.toJSON());\n return obj;\n }\n /**\n Deserialize a node from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n let marks = undefined;\n if (json.marks) {\n if (!Array.isArray(json.marks))\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\")\n throw new RangeError(\"Invalid text node in JSON\");\n return schema.text(json.text, marks);\n }\n let content = Fragment.fromJSON(schema, json.content);\n let node = schema.nodeType(json.type).create(json.attrs, content, marks);\n node.type.checkAttrs(node.attrs);\n return node;\n }\n}\nNode.prototype.text = undefined;\nclass TextNode extends Node {\n /**\n @internal\n */\n constructor(type, attrs, content, marks) {\n super(type, attrs, null, marks);\n if (!content)\n throw new RangeError(\"Empty text nodes are not allowed\");\n this.text = content;\n }\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n return wrapMarks(this.marks, JSON.stringify(this.text));\n }\n get textContent() { return this.text; }\n textBetween(from, to) { return this.text.slice(from, to); }\n get nodeSize() { return this.text.length; }\n mark(marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks);\n }\n withText(text) {\n if (text == this.text)\n return this;\n return new TextNode(this.type, this.attrs, text, this.marks);\n }\n cut(from = 0, to = this.text.length) {\n if (from == 0 && to == this.text.length)\n return this;\n return this.withText(this.text.slice(from, to));\n }\n eq(other) {\n return this.sameMarkup(other) && this.text == other.text;\n }\n toJSON() {\n let base = super.toJSON();\n base.text = this.text;\n return base;\n }\n}\nfunction wrapMarks(marks, str) {\n for (let i = marks.length - 1; i >= 0; i--)\n str = marks[i].type.name + \"(\" + str + \")\";\n return str;\n}\n\n/**\nInstances of this class represent a match state of a node type's\n[content expression](https://prosemirror.net/docs/ref/#model.NodeSpec.content), and can be used to\nfind out whether further content matches here, and whether a given\nposition is a valid end of the node.\n*/\nclass ContentMatch {\n /**\n @internal\n */\n constructor(\n /**\n True when this match state represents a valid end of the node.\n */\n validEnd) {\n this.validEnd = validEnd;\n /**\n @internal\n */\n this.next = [];\n /**\n @internal\n */\n this.wrapCache = [];\n }\n /**\n @internal\n */\n static parse(string, nodeTypes) {\n let stream = new TokenStream(string, nodeTypes);\n if (stream.next == null)\n return ContentMatch.empty;\n let expr = parseExpr(stream);\n if (stream.next)\n stream.err(\"Unexpected trailing text\");\n let match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match;\n }\n /**\n Match a node type, returning a match after that node if\n successful.\n */\n matchType(type) {\n for (let i = 0; i < this.next.length; i++)\n if (this.next[i].type == type)\n return this.next[i].next;\n return null;\n }\n /**\n Try to match a fragment. Returns the resulting match when\n successful.\n */\n matchFragment(frag, start = 0, end = frag.childCount) {\n let cur = this;\n for (let i = start; cur && i < end; i++)\n cur = cur.matchType(frag.child(i).type);\n return cur;\n }\n /**\n @internal\n */\n get inlineContent() {\n return this.next.length != 0 && this.next[0].type.isInline;\n }\n /**\n Get the first matching node type at this match position that can\n be generated.\n */\n get defaultType() {\n for (let i = 0; i < this.next.length; i++) {\n let { type } = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs()))\n return type;\n }\n return null;\n }\n /**\n @internal\n */\n compatible(other) {\n for (let i = 0; i < this.next.length; i++)\n for (let j = 0; j < other.next.length; j++)\n if (this.next[i].type == other.next[j].type)\n return true;\n return false;\n }\n /**\n Try to match the given fragment, and if that fails, see if it can\n be made to match by inserting nodes in front of it. When\n successful, return a fragment of inserted nodes (which may be\n empty if nothing had to be inserted). When `toEnd` is true, only\n return a fragment if the resulting match goes to the end of the\n content expression.\n */\n fillBefore(after, toEnd = false, startIndex = 0) {\n let seen = [this];\n function search(match, types) {\n let finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n return Fragment.from(types.map(tp => tp.createAndFill()));\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n let found = search(next, types.concat(type));\n if (found)\n return found;\n }\n }\n return null;\n }\n return search(this, []);\n }\n /**\n Find a set of wrapping node types that would allow a node of the\n given type to appear at this position. The result may be empty\n (when it fits directly) and will be null when no such wrapping\n exists.\n */\n findWrapping(target) {\n for (let i = 0; i < this.wrapCache.length; i += 2)\n if (this.wrapCache[i] == target)\n return this.wrapCache[i + 1];\n let computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed;\n }\n /**\n @internal\n */\n computeWrapping(target) {\n let seen = Object.create(null), active = [{ match: this, type: null, via: null }];\n while (active.length) {\n let current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n let result = [];\n for (let obj = current; obj.type; obj = obj.via)\n result.push(obj.type);\n return result.reverse();\n }\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || next.validEnd)) {\n active.push({ match: type.contentMatch, type, via: current });\n seen[type.name] = true;\n }\n }\n }\n return null;\n }\n /**\n The number of outgoing edges this node has in the finite\n automaton that describes the content expression.\n */\n get edgeCount() {\n return this.next.length;\n }\n /**\n Get the _n_​th outgoing edge from this node in the finite\n automaton that describes the content expression.\n */\n edge(n) {\n if (n >= this.next.length)\n throw new RangeError(`There's no ${n}th edge in this content match`);\n return this.next[n];\n }\n /**\n @internal\n */\n toString() {\n let seen = [];\n function scan(m) {\n seen.push(m);\n for (let i = 0; i < m.next.length; i++)\n if (seen.indexOf(m.next[i].next) == -1)\n scan(m.next[i].next);\n }\n scan(this);\n return seen.map((m, i) => {\n let out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (let i = 0; i < m.next.length; i++)\n out += (i ? \", \" : \"\") + m.next[i].type.name + \"->\" + seen.indexOf(m.next[i].next);\n return out;\n }).join(\"\\n\");\n }\n}\n/**\n@internal\n*/\nContentMatch.empty = new ContentMatch(true);\nclass TokenStream {\n constructor(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\")\n this.tokens.pop();\n if (this.tokens[0] == \"\")\n this.tokens.shift();\n }\n get next() { return this.tokens[this.pos]; }\n eat(tok) { return this.next == tok && (this.pos++ || true); }\n err(str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\"); }\n}\nfunction parseExpr(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSeq(stream));\n } while (stream.eat(\"|\"));\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n}\nfunction parseExprSeq(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSubscript(stream));\n } while (stream.next && stream.next != \")\" && stream.next != \"|\");\n return exprs.length == 1 ? exprs[0] : { type: \"seq\", exprs };\n}\nfunction parseExprSubscript(stream) {\n let expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n expr = { type: \"plus\", expr };\n else if (stream.eat(\"*\"))\n expr = { type: \"star\", expr };\n else if (stream.eat(\"?\"))\n expr = { type: \"opt\", expr };\n else if (stream.eat(\"{\"))\n expr = parseExprRange(stream, expr);\n else\n break;\n }\n return expr;\n}\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next))\n stream.err(\"Expected number, got '\" + stream.next + \"'\");\n let result = Number(stream.next);\n stream.pos++;\n return result;\n}\nfunction parseExprRange(stream, expr) {\n let min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\")\n max = parseNum(stream);\n else\n max = -1;\n }\n if (!stream.eat(\"}\"))\n stream.err(\"Unclosed braced range\");\n return { type: \"range\", min, max, expr };\n}\nfunction resolveName(stream, name) {\n let types = stream.nodeTypes, type = types[name];\n if (type)\n return [type];\n let result = [];\n for (let typeName in types) {\n let type = types[typeName];\n if (type.groups.indexOf(name) > -1)\n result.push(type);\n }\n if (result.length == 0)\n stream.err(\"No node type or group '\" + name + \"' found\");\n return result;\n}\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n let expr = parseExpr(stream);\n if (!stream.eat(\")\"))\n stream.err(\"Missing closing paren\");\n return expr;\n }\n else if (!/\\W/.test(stream.next)) {\n let exprs = resolveName(stream, stream.next).map(type => {\n if (stream.inline == null)\n stream.inline = type.isInline;\n else if (stream.inline != type.isInline)\n stream.err(\"Mixing inline and block content\");\n return { type: \"name\", value: type };\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n }\n else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n/**\nConstruct an NFA from an expression as returned by the parser. The\nNFA is represented as an array of states, which are themselves\narrays of edges, which are `{term, to}` objects. The first state is\nthe entry state and the last node is the success state.\n\nNote that unlike typical NFAs, the edge ordering in this one is\nsignificant, in that it is used to contruct filler content when\nnecessary.\n*/\nfunction nfa(expr) {\n let nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa;\n function node() { return nfa.push([]) - 1; }\n function edge(from, to, term) {\n let edge = { term, to };\n nfa[from].push(edge);\n return edge;\n }\n function connect(edges, to) {\n edges.forEach(edge => edge.to = to);\n }\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce((out, expr) => out.concat(compile(expr, from)), []);\n }\n else if (expr.type == \"seq\") {\n for (let i = 0;; i++) {\n let next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1)\n return next;\n connect(next, from = node());\n }\n }\n else if (expr.type == \"star\") {\n let loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"plus\") {\n let loop = node();\n connect(compile(expr.expr, from), loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from));\n }\n else if (expr.type == \"range\") {\n let cur = from;\n for (let i = 0; i < expr.min; i++) {\n let next = node();\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n }\n else {\n for (let i = expr.min; i < expr.max; i++) {\n let next = node();\n edge(cur, next);\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n }\n return [edge(cur)];\n }\n else if (expr.type == \"name\") {\n return [edge(from, undefined, expr.value)];\n }\n else {\n throw new Error(\"Unknown expr type\");\n }\n }\n}\nfunction cmp(a, b) { return b - a; }\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n let result = [];\n scan(node);\n return result.sort(cmp);\n function scan(node) {\n let edges = nfa[node];\n if (edges.length == 1 && !edges[0].term)\n return scan(edges[0].to);\n result.push(node);\n for (let i = 0; i < edges.length; i++) {\n let { term, to } = edges[i];\n if (!term && result.indexOf(to) == -1)\n scan(to);\n }\n }\n}\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n let labeled = Object.create(null);\n return explore(nullFrom(nfa, 0));\n function explore(states) {\n let out = [];\n states.forEach(node => {\n nfa[node].forEach(({ term, to }) => {\n if (!term)\n return;\n let set;\n for (let i = 0; i < out.length; i++)\n if (out[i][0] == term)\n set = out[i][1];\n nullFrom(nfa, to).forEach(node => {\n if (!set)\n out.push([term, set = []]);\n if (set.indexOf(node) == -1)\n set.push(node);\n });\n });\n });\n let state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (let i = 0; i < out.length; i++) {\n let states = out[i][1].sort(cmp);\n state.next.push({ type: out[i][0], next: labeled[states.join(\",\")] || explore(states) });\n }\n return state;\n }\n}\nfunction checkForDeadEnds(match, stream) {\n for (let i = 0, work = [match]; i < work.length; i++) {\n let state = work[i], dead = !state.validEnd, nodes = [];\n for (let j = 0; j < state.next.length; j++) {\n let { type, next } = state.next[j];\n nodes.push(type.name);\n if (dead && !(type.isText || type.hasRequiredAttrs()))\n dead = false;\n if (work.indexOf(next) == -1)\n work.push(next);\n }\n if (dead)\n stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n let defaults = Object.create(null);\n for (let attrName in attrs) {\n let attr = attrs[attrName];\n if (!attr.hasDefault)\n return null;\n defaults[attrName] = attr.default;\n }\n return defaults;\n}\nfunction computeAttrs(attrs, value) {\n let built = Object.create(null);\n for (let name in attrs) {\n let given = value && value[name];\n if (given === undefined) {\n let attr = attrs[name];\n if (attr.hasDefault)\n given = attr.default;\n else\n throw new RangeError(\"No value supplied for attribute \" + name);\n }\n built[name] = given;\n }\n return built;\n}\nfunction checkAttrs(attrs, values, type, name) {\n for (let name in values)\n if (!(name in attrs))\n throw new RangeError(`Unsupported attribute ${name} for ${type} of type ${name}`);\n for (let name in attrs) {\n let attr = attrs[name];\n if (attr.validate)\n attr.validate(values[name]);\n }\n}\nfunction initAttrs(typeName, attrs) {\n let result = Object.create(null);\n if (attrs)\n for (let name in attrs)\n result[name] = new Attribute(typeName, name, attrs[name]);\n return result;\n}\n/**\nNode types are objects allocated once per `Schema` and used to\n[tag](https://prosemirror.net/docs/ref/#model.Node.type) `Node` instances. They contain information\nabout the node type, such as its name and what kind of node it\nrepresents.\n*/\nclass NodeType {\n /**\n @internal\n */\n constructor(\n /**\n The name the node type has in this schema.\n */\n name, \n /**\n A link back to the `Schema` the node type belongs to.\n */\n schema, \n /**\n The spec that this type is based on\n */\n spec) {\n this.name = name;\n this.schema = schema;\n this.spec = spec;\n /**\n The set of marks allowed in this node. `null` means all marks\n are allowed.\n */\n this.markSet = null;\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(name, spec.attrs);\n this.defaultAttrs = defaultAttrs(this.attrs);\n this.contentMatch = null;\n this.inlineContent = null;\n this.isBlock = !(spec.inline || name == \"text\");\n this.isText = name == \"text\";\n }\n /**\n True if this is an inline type.\n */\n get isInline() { return !this.isBlock; }\n /**\n True if this is a textblock type, a block that contains inline\n content.\n */\n get isTextblock() { return this.isBlock && this.inlineContent; }\n /**\n True for node types that allow no content.\n */\n get isLeaf() { return this.contentMatch == ContentMatch.empty; }\n /**\n True when this node is an atom, i.e. when it does not have\n directly editable content.\n */\n get isAtom() { return this.isLeaf || !!this.spec.atom; }\n /**\n The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.\n */\n get whitespace() {\n return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\");\n }\n /**\n Tells you whether this node type has any required attributes.\n */\n hasRequiredAttrs() {\n for (let n in this.attrs)\n if (this.attrs[n].isRequired)\n return true;\n return false;\n }\n /**\n Indicates whether this node allows some of the same content as\n the given node type.\n */\n compatibleContent(other) {\n return this == other || this.contentMatch.compatible(other.contentMatch);\n }\n /**\n @internal\n */\n computeAttrs(attrs) {\n if (!attrs && this.defaultAttrs)\n return this.defaultAttrs;\n else\n return computeAttrs(this.attrs, attrs);\n }\n /**\n Create a `Node` of this type. The given attributes are\n checked and defaulted (you can pass `null` to use the type's\n defaults entirely, if no required attributes exist). `content`\n may be a `Fragment`, a node, an array of nodes, or\n `null`. Similarly `marks` may be `null` to default to the empty\n set of marks.\n */\n create(attrs = null, content, marks) {\n if (this.isText)\n throw new Error(\"NodeType.create can't construct text nodes\");\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content\n against the node type's content restrictions, and throw an error\n if it doesn't match.\n */\n createChecked(attrs = null, content, marks) {\n content = Fragment.from(content);\n this.checkContent(content);\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but see if it is\n necessary to add nodes to the start or end of the given fragment\n to make it fit the node. If no fitting wrapping can be found,\n return null. Note that, due to the fact that required nodes can\n always be created, this will always succeed if you pass null or\n `Fragment.empty` as content.\n */\n createAndFill(attrs = null, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n let before = this.contentMatch.fillBefore(content);\n if (!before)\n return null;\n content = before.append(content);\n }\n let matched = this.contentMatch.matchFragment(content);\n let after = matched && matched.fillBefore(Fragment.empty, true);\n if (!after)\n return null;\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks));\n }\n /**\n Returns true if the given fragment is valid content for this node\n type.\n */\n validContent(content) {\n let result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd)\n return false;\n for (let i = 0; i < content.childCount; i++)\n if (!this.allowsMarks(content.child(i).marks))\n return false;\n return true;\n }\n /**\n Throws a RangeError if the given fragment is not valid content for this\n node type.\n @internal\n */\n checkContent(content) {\n if (!this.validContent(content))\n throw new RangeError(`Invalid content for node ${this.name}: ${content.toString().slice(0, 50)}`);\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"node\", this.name);\n }\n /**\n Check whether the given mark type is allowed in this node.\n */\n allowsMarkType(markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1;\n }\n /**\n Test whether the given set of marks are allowed in this node.\n */\n allowsMarks(marks) {\n if (this.markSet == null)\n return true;\n for (let i = 0; i < marks.length; i++)\n if (!this.allowsMarkType(marks[i].type))\n return false;\n return true;\n }\n /**\n Removes the marks that are not allowed in this node from the given set.\n */\n allowedMarks(marks) {\n if (this.markSet == null)\n return marks;\n let copy;\n for (let i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy)\n copy = marks.slice(0, i);\n }\n else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.none;\n }\n /**\n @internal\n */\n static compile(nodes, schema) {\n let result = Object.create(null);\n nodes.forEach((name, spec) => result[name] = new NodeType(name, schema, spec));\n let topType = schema.spec.topNode || \"doc\";\n if (!result[topType])\n throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\");\n if (!result.text)\n throw new RangeError(\"Every schema needs a 'text' type\");\n for (let _ in result.text.attrs)\n throw new RangeError(\"The text node type should not have attributes\");\n return result;\n }\n}\nfunction validateType(typeName, attrName, type) {\n let types = type.split(\"|\");\n return (value) => {\n let name = value === null ? \"null\" : typeof value;\n if (types.indexOf(name) < 0)\n throw new RangeError(`Expected value of type ${types} for attribute ${attrName} on type ${typeName}, got ${name}`);\n };\n}\n// Attribute descriptors\nclass Attribute {\n constructor(typeName, attrName, options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n this.validate = typeof options.validate == \"string\" ? validateType(typeName, attrName, options.validate) : options.validate;\n }\n get isRequired() {\n return !this.hasDefault;\n }\n}\n// Marks\n/**\nLike nodes, marks (which are associated with nodes to signify\nthings like emphasis or being part of a link) are\n[tagged](https://prosemirror.net/docs/ref/#model.Mark.type) with type objects, which are\ninstantiated once per `Schema`.\n*/\nclass MarkType {\n /**\n @internal\n */\n constructor(\n /**\n The name of the mark type.\n */\n name, \n /**\n @internal\n */\n rank, \n /**\n The schema that this mark type instance is part of.\n */\n schema, \n /**\n The spec on which the type is based.\n */\n spec) {\n this.name = name;\n this.rank = rank;\n this.schema = schema;\n this.spec = spec;\n this.attrs = initAttrs(name, spec.attrs);\n this.excluded = null;\n let defaults = defaultAttrs(this.attrs);\n this.instance = defaults ? new Mark(this, defaults) : null;\n }\n /**\n Create a mark of this type. `attrs` may be `null` or an object\n containing only some of the mark's attributes. The others, if\n they have defaults, will be added.\n */\n create(attrs = null) {\n if (!attrs && this.instance)\n return this.instance;\n return new Mark(this, computeAttrs(this.attrs, attrs));\n }\n /**\n @internal\n */\n static compile(marks, schema) {\n let result = Object.create(null), rank = 0;\n marks.forEach((name, spec) => result[name] = new MarkType(name, rank++, schema, spec));\n return result;\n }\n /**\n When there is a mark of this type in the given set, a new set\n without it is returned. Otherwise, the input set is returned.\n */\n removeFromSet(set) {\n for (var i = 0; i < set.length; i++)\n if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n }\n return set;\n }\n /**\n Tests whether there is a mark of this type in the given set.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (set[i].type == this)\n return set[i];\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"mark\", this.name);\n }\n /**\n Queries whether a given mark type is\n [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.\n */\n excludes(other) {\n return this.excluded.indexOf(other) > -1;\n }\n}\n/**\nA document schema. Holds [node](https://prosemirror.net/docs/ref/#model.NodeType) and [mark\ntype](https://prosemirror.net/docs/ref/#model.MarkType) objects for the nodes and marks that may\noccur in conforming documents, and provides functionality for\ncreating and deserializing such documents.\n\nWhen given, the type parameters provide the names of the nodes and\nmarks in this schema.\n*/\nclass Schema {\n /**\n Construct a schema from a schema [specification](https://prosemirror.net/docs/ref/#model.SchemaSpec).\n */\n constructor(spec) {\n /**\n The [linebreak\n replacement](https://prosemirror.net/docs/ref/#model.NodeSpec.linebreakReplacement) node defined\n in this schema, if any.\n */\n this.linebreakReplacement = null;\n /**\n An object for storing whatever values modules may want to\n compute and cache per schema. (If you want to store something\n in it, try to use property names unlikely to clash.)\n */\n this.cached = Object.create(null);\n let instanceSpec = this.spec = {};\n for (let prop in spec)\n instanceSpec[prop] = spec[prop];\n instanceSpec.nodes = OrderedMap.from(spec.nodes),\n instanceSpec.marks = OrderedMap.from(spec.marks || {}),\n this.nodes = NodeType.compile(this.spec.nodes, this);\n this.marks = MarkType.compile(this.spec.marks, this);\n let contentExprCache = Object.create(null);\n for (let prop in this.nodes) {\n if (prop in this.marks)\n throw new RangeError(prop + \" can not be both a node and a mark\");\n let type = this.nodes[prop], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n if (type.spec.linebreakReplacement) {\n if (this.linebreakReplacement)\n throw new RangeError(\"Multiple linebreak nodes defined\");\n if (!type.isInline || !type.isLeaf)\n throw new RangeError(\"Linebreak replacement nodes must be inline leaf nodes\");\n this.linebreakReplacement = type;\n }\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (let prop in this.marks) {\n let type = this.marks[prop], excl = type.spec.excludes;\n type.excluded = excl == null ? [type] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n this.cached.wrappings = Object.create(null);\n }\n /**\n Create a node in this schema. The `type` may be a string or a\n `NodeType` instance. Attributes will be extended with defaults,\n `content` may be a `Fragment`, `null`, a `Node`, or an array of\n nodes.\n */\n node(type, attrs = null, content, marks) {\n if (typeof type == \"string\")\n type = this.nodeType(type);\n else if (!(type instanceof NodeType))\n throw new RangeError(\"Invalid node type: \" + type);\n else if (type.schema != this)\n throw new RangeError(\"Node type from different schema used (\" + type.name + \")\");\n return type.createChecked(attrs, content, marks);\n }\n /**\n Create a text node in the schema. Empty text nodes are not\n allowed.\n */\n text(text, marks) {\n let type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text, Mark.setFrom(marks));\n }\n /**\n Create a mark with the given type and attributes.\n */\n mark(type, attrs) {\n if (typeof type == \"string\")\n type = this.marks[type];\n return type.create(attrs);\n }\n /**\n Deserialize a node from its JSON representation. This method is\n bound.\n */\n nodeFromJSON(json) {\n return Node.fromJSON(this, json);\n }\n /**\n Deserialize a mark from its JSON representation. This method is\n bound.\n */\n markFromJSON(json) {\n return Mark.fromJSON(this, json);\n }\n /**\n @internal\n */\n nodeType(name) {\n let found = this.nodes[name];\n if (!found)\n throw new RangeError(\"Unknown node type: \" + name);\n return found;\n }\n}\nfunction gatherMarks(schema, marks) {\n let found = [];\n for (let i = 0; i < marks.length; i++) {\n let name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n }\n else {\n for (let prop in schema.marks) {\n let mark = schema.marks[prop];\n if (name == \"_\" || (mark.spec.group && mark.spec.group.split(\" \").indexOf(name) > -1))\n found.push(ok = mark);\n }\n }\n if (!ok)\n throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\");\n }\n return found;\n}\n\nfunction isTagRule(rule) { return rule.tag != null; }\nfunction isStyleRule(rule) { return rule.style != null; }\n/**\nA DOM parser represents a strategy for parsing DOM content into a\nProseMirror document conforming to a given schema. Its behavior is\ndefined by an array of [rules](https://prosemirror.net/docs/ref/#model.ParseRule).\n*/\nclass DOMParser {\n /**\n Create a parser that targets the given schema, using the given\n parsing rules.\n */\n constructor(\n /**\n The schema into which the parser parses.\n */\n schema, \n /**\n The set of [parse rules](https://prosemirror.net/docs/ref/#model.ParseRule) that the parser\n uses, in order of precedence.\n */\n rules) {\n this.schema = schema;\n this.rules = rules;\n /**\n @internal\n */\n this.tags = [];\n /**\n @internal\n */\n this.styles = [];\n let matchedStyles = this.matchedStyles = [];\n rules.forEach(rule => {\n if (isTagRule(rule)) {\n this.tags.push(rule);\n }\n else if (isStyleRule(rule)) {\n let prop = /[^=]*/.exec(rule.style)[0];\n if (matchedStyles.indexOf(prop) < 0)\n matchedStyles.push(prop);\n this.styles.push(rule);\n }\n });\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(r => {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node)\n return false;\n let node = schema.nodes[r.node];\n return node.contentMatch.matchType(node);\n });\n }\n /**\n Parse a document from the content of a DOM node.\n */\n parse(dom, options = {}) {\n let context = new ParseContext(this, options, false);\n context.addAll(dom, Mark.none, options.from, options.to);\n return context.finish();\n }\n /**\n Parses the content of the given DOM node, like\n [`parse`](https://prosemirror.net/docs/ref/#model.DOMParser.parse), and takes the same set of\n options. But unlike that method, which produces a whole node,\n this one returns a slice that is open at the sides, meaning that\n the schema constraints aren't applied to the start of nodes to\n the left of the input and the end of nodes at the end.\n */\n parseSlice(dom, options = {}) {\n let context = new ParseContext(this, options, true);\n context.addAll(dom, Mark.none, options.from, options.to);\n return Slice.maxOpen(context.finish());\n }\n /**\n @internal\n */\n matchTag(dom, context, after) {\n for (let i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n let rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n let result = rule.getAttrs(dom);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n }\n /**\n @internal\n */\n matchStyle(prop, value, context, after) {\n for (let i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n let rule = this.styles[i], style = rule.style;\n if (style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n style.length > prop.length &&\n (style.charCodeAt(prop.length) != 61 || style.slice(prop.length + 1) != value))\n continue;\n if (rule.getAttrs) {\n let result = rule.getAttrs(value);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n /**\n @internal\n */\n static schemaRules(schema) {\n let result = [];\n function insert(rule) {\n let priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n let next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority)\n break;\n }\n result.splice(i, 0, rule);\n }\n for (let name in schema.marks) {\n let rules = schema.marks[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.mark || rule.ignore || rule.clearMark))\n rule.mark = name;\n });\n }\n for (let name in schema.nodes) {\n let rules = schema.nodes[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.node || rule.ignore || rule.mark))\n rule.node = name;\n });\n }\n return result;\n }\n /**\n Construct a DOM parser using the parsing rules listed in a\n schema's [node specs](https://prosemirror.net/docs/ref/#model.NodeSpec.parseDOM), reordered by\n [priority](https://prosemirror.net/docs/ref/#model.ParseRule.priority).\n */\n static fromSchema(schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)));\n }\n}\nconst blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\nconst ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\nconst listTags = { ol: true, ul: true };\n// Using a bitfield for node context options\nconst OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null)\n return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0);\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT;\n}\nclass NodeContext {\n constructor(type, attrs, marks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.solid = solid;\n this.options = options;\n this.content = [];\n // Marks applied to the node's children\n this.activeMarks = Mark.none;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n }\n findWrapping(node) {\n if (!this.match) {\n if (!this.type)\n return [];\n let fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n }\n else {\n let start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap;\n }\n else {\n return null;\n }\n }\n }\n return this.match.findWrapping(node.type);\n }\n finish(openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n let last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n let text = last;\n if (last.text.length == m[0].length)\n this.content.pop();\n else\n this.content[this.content.length - 1] = text.withText(text.text.slice(0, text.text.length - m[0].length));\n }\n }\n let content = Fragment.from(this.content);\n if (!openEnd && this.match)\n content = content.append(this.match.fillBefore(Fragment.empty, true));\n return this.type ? this.type.create(this.attrs, content, this.marks) : content;\n }\n inlineContext(node) {\n if (this.type)\n return this.type.inlineContent;\n if (this.content.length)\n return this.content[0].isInline;\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase());\n }\n}\nclass ParseContext {\n constructor(\n // The parser we are using.\n parser, \n // The options passed to this parse.\n options, isOpen) {\n this.parser = parser;\n this.options = options;\n this.isOpen = isOpen;\n this.open = 0;\n let topNode = options.topNode, topContext;\n let topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (isOpen ? OPT_OPEN_LEFT : 0);\n if (topNode)\n topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, true, options.topMatch || topNode.type.contentMatch, topOptions);\n else if (isOpen)\n topContext = new NodeContext(null, null, Mark.none, true, null, topOptions);\n else\n topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, true, null, topOptions);\n this.nodes = [topContext];\n this.find = options.findPositions;\n this.needsBlock = false;\n }\n get top() {\n return this.nodes[this.open];\n }\n // Add a DOM node to the content. Text is inserted as text node,\n // otherwise, the node is passed to `addElement` or, if it has a\n // `style` attribute, `addElementWithStyles`.\n addDOM(dom, marks) {\n if (dom.nodeType == 3)\n this.addTextNode(dom, marks);\n else if (dom.nodeType == 1)\n this.addElement(dom, marks);\n }\n addTextNode(dom, marks) {\n let value = dom.nodeValue;\n let top = this.top;\n if (top.options & OPT_PRESERVE_WS_FULL ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!(top.options & OPT_PRESERVE_WS)) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n let nodeBefore = top.content[top.content.length - 1];\n let domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n value = value.slice(1);\n }\n }\n else if (!(top.options & OPT_PRESERVE_WS_FULL)) {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n }\n else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value)\n this.insertNode(this.parser.schema.text(value), marks);\n this.findInText(dom);\n }\n else {\n this.findInside(dom);\n }\n }\n // Try to find a handler for the given tag and use that to parse. If\n // none is found, the element's content nodes are added directly.\n addElement(dom, marks, matchAfter) {\n let name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists)\n normalizeList(dom);\n let rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom, marks);\n }\n else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent)\n this.open = Math.max(0, this.open - 1);\n else if (rule && rule.skip.nodeType)\n dom = rule.skip;\n let sync, top = this.top, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n if (top.content.length && top.content[0].isInline && this.open) {\n this.open--;\n top = this.top;\n }\n sync = true;\n if (!top.type)\n this.needsBlock = true;\n }\n else if (!dom.firstChild) {\n this.leafFallback(dom, marks);\n return;\n }\n let innerMarks = rule && rule.skip ? marks : this.readStyles(dom, marks);\n if (innerMarks)\n this.addAll(dom, innerMarks);\n if (sync)\n this.sync(top);\n this.needsBlock = oldNeedsBlock;\n }\n else {\n let innerMarks = this.readStyles(dom, marks);\n if (innerMarks)\n this.addElementByRule(dom, rule, innerMarks, rule.consuming === false ? ruleID : undefined);\n }\n }\n // Called for leaf DOM nodes that would otherwise be ignored\n leafFallback(dom, marks) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\"), marks);\n }\n // Called for ignored nodes\n ignoreFallback(dom, marks) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n this.findPlace(this.parser.schema.text(\"-\"), marks);\n }\n // Run any style parser associated with the node's styles. Either\n // return an updated array of marks, or null to indicate some of the\n // styles had a rule with `ignore` set.\n readStyles(dom, marks) {\n let styles = dom.style;\n // Because many properties will only show up in 'normalized' form\n // in `style.item` (i.e. text-decoration becomes\n // text-decoration-line, text-decoration-color, etc), we directly\n // query the styles mentioned in our rules instead of iterating\n // over the items.\n if (styles && styles.length)\n for (let i = 0; i < this.parser.matchedStyles.length; i++) {\n let name = this.parser.matchedStyles[i], value = styles.getPropertyValue(name);\n if (value)\n for (let after = undefined;;) {\n let rule = this.parser.matchStyle(name, value, this, after);\n if (!rule)\n break;\n if (rule.ignore)\n return null;\n if (rule.clearMark)\n marks = marks.filter(m => !rule.clearMark(m));\n else\n marks = marks.concat(this.parser.schema.marks[rule.mark].create(rule.attrs));\n if (rule.consuming === false)\n after = rule;\n else\n break;\n }\n }\n return marks;\n }\n // Look up a handler for the given node. If none are found, return\n // false. Otherwise, apply it, use its return value to drive the way\n // the node's content is wrapped, and return true.\n addElementByRule(dom, rule, marks, continueAfter) {\n let sync, nodeType;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n let inner = this.enter(nodeType, rule.attrs || null, marks, rule.preserveWhitespace);\n if (inner) {\n sync = true;\n marks = inner;\n }\n }\n else if (!this.insertNode(nodeType.create(rule.attrs), marks)) {\n this.leafFallback(dom, marks);\n }\n }\n else {\n let markType = this.parser.schema.marks[rule.mark];\n marks = marks.concat(markType.create(rule.attrs));\n }\n let startIn = this.top;\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n }\n else if (continueAfter) {\n this.addElement(dom, marks, continueAfter);\n }\n else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(node => this.insertNode(node, marks));\n }\n else {\n let contentDOM = dom;\n if (typeof rule.contentElement == \"string\")\n contentDOM = dom.querySelector(rule.contentElement);\n else if (typeof rule.contentElement == \"function\")\n contentDOM = rule.contentElement(dom);\n else if (rule.contentElement)\n contentDOM = rule.contentElement;\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, marks);\n }\n if (sync && this.sync(startIn))\n this.open--;\n }\n // Add all child nodes between `startIndex` and `endIndex` (or the\n // whole node, if not given). If `sync` is passed, use it to\n // synchronize after every block element.\n addAll(parent, marks, startIndex, endIndex) {\n let index = startIndex || 0;\n for (let dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild, end = endIndex == null ? null : parent.childNodes[endIndex]; dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom, marks);\n }\n this.findAtPoint(parent, index);\n }\n // Try to find a way to fit the given node type into the current\n // context. May add intermediate wrappers and/or leave non-solid\n // nodes that we're in.\n findPlace(node, marks) {\n let route, sync;\n for (let depth = this.open; depth >= 0; depth--) {\n let cx = this.nodes[depth];\n let found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length)\n break;\n }\n if (cx.solid)\n break;\n }\n if (!route)\n return null;\n this.sync(sync);\n for (let i = 0; i < route.length; i++)\n marks = this.enterInner(route[i], null, marks, false);\n return marks;\n }\n // Try to insert the given node, adjusting the context when needed.\n insertNode(node, marks) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n let block = this.textblockFromContext();\n if (block)\n marks = this.enterInner(block, null, marks);\n }\n let innerMarks = this.findPlace(node, marks);\n if (innerMarks) {\n this.closeExtra();\n let top = this.top;\n if (top.match)\n top.match = top.match.matchType(node.type);\n let nodeMarks = Mark.none;\n for (let m of innerMarks.concat(node.marks))\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, node.type))\n nodeMarks = m.addToSet(nodeMarks);\n top.content.push(node.mark(nodeMarks));\n return true;\n }\n return false;\n }\n // Try to start a node of the given type, adjusting the context when\n // necessary.\n enter(type, attrs, marks, preserveWS) {\n let innerMarks = this.findPlace(type.create(attrs), marks);\n if (innerMarks)\n innerMarks = this.enterInner(type, attrs, marks, true, preserveWS);\n return innerMarks;\n }\n // Open a node of the given type\n enterInner(type, attrs, marks, solid = false, preserveWS) {\n this.closeExtra();\n let top = this.top;\n top.match = top.match && top.match.matchType(type);\n let options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0)\n options |= OPT_OPEN_LEFT;\n let applyMarks = Mark.none;\n marks = marks.filter(m => {\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, type)) {\n applyMarks = m.addToSet(applyMarks);\n return false;\n }\n return true;\n });\n this.nodes.push(new NodeContext(type, attrs, applyMarks, solid, null, options));\n this.open++;\n return marks;\n }\n // Make sure all nodes above this.open are finished and added to\n // their parents\n closeExtra(openEnd = false) {\n let i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--)\n this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd));\n this.nodes.length = this.open + 1;\n }\n }\n finish() {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(this.isOpen || this.options.topOpen);\n }\n sync(to) {\n for (let i = this.open; i >= 0; i--)\n if (this.nodes[i] == to) {\n this.open = i;\n return true;\n }\n return false;\n }\n get currentPos() {\n this.closeExtra();\n let pos = 0;\n for (let i = this.open; i >= 0; i--) {\n let content = this.nodes[i].content;\n for (let j = content.length - 1; j >= 0; j--)\n pos += content[j].nodeSize;\n if (i)\n pos++;\n }\n return pos;\n }\n findAtPoint(parent, offset) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n this.find[i].pos = this.currentPos;\n }\n }\n findInside(parent) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n this.find[i].pos = this.currentPos;\n }\n }\n findAround(parent, content, before) {\n if (parent != content && this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n let pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n this.find[i].pos = this.currentPos;\n }\n }\n }\n findInText(textNode) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset);\n }\n }\n // Determines whether the given context string matches this context.\n matchesContext(context) {\n if (context.indexOf(\"|\") > -1)\n return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n let parts = context.split(\"/\");\n let option = this.options.context;\n let useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n let minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n let match = (i, depth) => {\n for (; i >= 0; i--) {\n let part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0)\n continue;\n for (; depth >= minDepth; depth--)\n if (match(i - 1, depth))\n return true;\n return false;\n }\n else {\n let next = depth > 0 || (depth == 0 && useRoot) ? this.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && next.groups.indexOf(part) == -1))\n return false;\n depth--;\n }\n }\n return true;\n };\n return match(parts.length - 1, this.open);\n }\n textblockFromContext() {\n let $context = this.options.context;\n if ($context)\n for (let d = $context.depth; d >= 0; d--) {\n let deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs)\n return deflt;\n }\n for (let name in this.parser.schema.nodes) {\n let type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs)\n return type;\n }\n }\n}\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (let child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n let name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n }\n else if (name == \"li\") {\n prevItem = child;\n }\n else if (name) {\n prevItem = null;\n }\n }\n}\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector);\n}\nfunction copy(obj) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n return copy;\n}\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n let nodes = nodeType.schema.nodes;\n for (let name in nodes) {\n let parent = nodes[name];\n if (!parent.allowsMarkType(markType))\n continue;\n let seen = [], scan = (match) => {\n seen.push(match);\n for (let i = 0; i < match.edgeCount; i++) {\n let { type, next } = match.edge(i);\n if (type == nodeType)\n return true;\n if (seen.indexOf(next) < 0 && scan(next))\n return true;\n }\n };\n if (scan(parent.contentMatch))\n return true;\n }\n}\n\n/**\nA DOM serializer knows how to convert ProseMirror nodes and\nmarks of various types to DOM nodes.\n*/\nclass DOMSerializer {\n /**\n Create a serializer. `nodes` should map node names to functions\n that take a node and return a description of the corresponding\n DOM. `marks` does the same for mark names, but also gets an\n argument that tells it whether the mark's content is block or\n inline content (for typical use, it'll always be inline). A mark\n serializer may be `null` to indicate that marks of that type\n should not be serialized.\n */\n constructor(\n /**\n The node serialization functions.\n */\n nodes, \n /**\n The mark serialization functions.\n */\n marks) {\n this.nodes = nodes;\n this.marks = marks;\n }\n /**\n Serialize the content of this fragment to a DOM fragment. When\n not in the browser, the `document` option, containing a DOM\n document, should be passed so that the serializer can create\n nodes.\n */\n serializeFragment(fragment, options = {}, target) {\n if (!target)\n target = doc(options).createDocumentFragment();\n let top = target, active = [];\n fragment.forEach(node => {\n if (active.length || node.marks.length) {\n let keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n let next = node.marks[rendered];\n if (!this.marks[next.type.name]) {\n rendered++;\n continue;\n }\n if (!next.eq(active[keep][0]) || next.type.spec.spanning === false)\n break;\n keep++;\n rendered++;\n }\n while (keep < active.length)\n top = active.pop()[1];\n while (rendered < node.marks.length) {\n let add = node.marks[rendered++];\n let markDOM = this.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push([add, top]);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this.serializeNodeInner(node, options));\n });\n return target;\n }\n /**\n @internal\n */\n serializeNodeInner(node, options) {\n let { dom, contentDOM } = renderSpec(doc(options), this.nodes[node.type.name](node), null, node.attrs);\n if (contentDOM) {\n if (node.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n this.serializeFragment(node.content, options, contentDOM);\n }\n return dom;\n }\n /**\n Serialize this node to a DOM node. This can be useful when you\n need to serialize a part of a document, as opposed to the whole\n document. To serialize a whole document, use\n [`serializeFragment`](https://prosemirror.net/docs/ref/#model.DOMSerializer.serializeFragment) on\n its [content](https://prosemirror.net/docs/ref/#model.Node.content).\n */\n serializeNode(node, options = {}) {\n let dom = this.serializeNodeInner(node, options);\n for (let i = node.marks.length - 1; i >= 0; i--) {\n let wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n (wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom;\n }\n /**\n @internal\n */\n serializeMark(mark, inline, options = {}) {\n let toDOM = this.marks[mark.type.name];\n return toDOM && renderSpec(doc(options), toDOM(mark, inline), null, mark.attrs);\n }\n static renderSpec(doc, structure, xmlNS = null, blockArraysIn) {\n return renderSpec(doc, structure, xmlNS, blockArraysIn);\n }\n /**\n Build a serializer using the [`toDOM`](https://prosemirror.net/docs/ref/#model.NodeSpec.toDOM)\n properties in a schema's node and mark specs.\n */\n static fromSchema(schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)));\n }\n /**\n Gather the serializers in a schema's node specs into an object.\n This can be useful as a base to build a custom serializer from.\n */\n static nodesFromSchema(schema) {\n let result = gatherToDOM(schema.nodes);\n if (!result.text)\n result.text = node => node.text;\n return result;\n }\n /**\n Gather the serializers in a schema's mark specs into an object.\n */\n static marksFromSchema(schema) {\n return gatherToDOM(schema.marks);\n }\n}\nfunction gatherToDOM(obj) {\n let result = {};\n for (let name in obj) {\n let toDOM = obj[name].spec.toDOM;\n if (toDOM)\n result[name] = toDOM;\n }\n return result;\n}\nfunction doc(options) {\n return options.document || window.document;\n}\nconst suspiciousAttributeCache = new WeakMap();\nfunction suspiciousAttributes(attrs) {\n let value = suspiciousAttributeCache.get(attrs);\n if (value === undefined)\n suspiciousAttributeCache.set(attrs, value = suspiciousAttributesInner(attrs));\n return value;\n}\nfunction suspiciousAttributesInner(attrs) {\n let result = null;\n function scan(value) {\n if (value && typeof value == \"object\") {\n if (Array.isArray(value)) {\n if (typeof value[0] == \"string\") {\n if (!result)\n result = [];\n result.push(value);\n }\n else {\n for (let i = 0; i < value.length; i++)\n scan(value[i]);\n }\n }\n else {\n for (let prop in value)\n scan(value[prop]);\n }\n }\n }\n scan(attrs);\n return result;\n}\nfunction renderSpec(doc, structure, xmlNS, blockArraysIn) {\n if (typeof structure == \"string\")\n return { dom: doc.createTextNode(structure) };\n if (structure.nodeType != null)\n return { dom: structure };\n if (structure.dom && structure.dom.nodeType != null)\n return structure;\n let tagName = structure[0], suspicious;\n if (typeof tagName != \"string\")\n throw new RangeError(\"Invalid array passed to renderSpec\");\n if (blockArraysIn && (suspicious = suspiciousAttributes(blockArraysIn)) &&\n suspicious.indexOf(structure) > -1)\n throw new RangeError(\"Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.\");\n let space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n let contentDOM;\n let dom = (xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName));\n let attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (let name in attrs)\n if (attrs[name] != null) {\n let space = name.indexOf(\" \");\n if (space > 0)\n dom.setAttributeNS(name.slice(0, space), name.slice(space + 1), attrs[name]);\n else\n dom.setAttribute(name, attrs[name]);\n }\n }\n for (let i = start; i < structure.length; i++) {\n let child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n return { dom, contentDOM: dom };\n }\n else {\n let { dom: inner, contentDOM: innerContent } = renderSpec(doc, child, xmlNS, blockArraysIn);\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM)\n throw new RangeError(\"Multiple content holes\");\n contentDOM = innerContent;\n }\n }\n }\n return { dom, contentDOM };\n}\n\nexport { ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice };\n","import { ReplaceError, Slice, Fragment, MarkType, Mark } from 'prosemirror-model';\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\nconst lower16 = 0xffff;\nconst factor16 = Math.pow(2, 16);\nfunction makeRecover(index, offset) { return index + offset * factor16; }\nfunction recoverIndex(value) { return value & lower16; }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16; }\nconst DEL_BEFORE = 1, DEL_AFTER = 2, DEL_ACROSS = 4, DEL_SIDE = 8;\n/**\nAn object representing a mapped position with extra\ninformation.\n*/\nclass MapResult {\n /**\n @internal\n */\n constructor(\n /**\n The mapped version of the position.\n */\n pos, \n /**\n @internal\n */\n delInfo, \n /**\n @internal\n */\n recover) {\n this.pos = pos;\n this.delInfo = delInfo;\n this.recover = recover;\n }\n /**\n Tells you whether the position was deleted, that is, whether the\n step removed the token on the side queried (via the `assoc`)\n argument from the document.\n */\n get deleted() { return (this.delInfo & DEL_SIDE) > 0; }\n /**\n Tells you whether the token before the mapped position was deleted.\n */\n get deletedBefore() { return (this.delInfo & (DEL_BEFORE | DEL_ACROSS)) > 0; }\n /**\n True when the token after the mapped position was deleted.\n */\n get deletedAfter() { return (this.delInfo & (DEL_AFTER | DEL_ACROSS)) > 0; }\n /**\n Tells whether any of the steps mapped through deletes across the\n position (including both the token before and after the\n position).\n */\n get deletedAcross() { return (this.delInfo & DEL_ACROSS) > 0; }\n}\n/**\nA map describing the deletions and insertions made by a step, which\ncan be used to find the correspondence between positions in the\npre-step version of a document and the same position in the\npost-step version.\n*/\nclass StepMap {\n /**\n Create a position map. The modifications to the document are\n represented as an array of numbers, in which each group of three\n represents a modified chunk as `[start, oldSize, newSize]`.\n */\n constructor(\n /**\n @internal\n */\n ranges, \n /**\n @internal\n */\n inverted = false) {\n this.ranges = ranges;\n this.inverted = inverted;\n if (!ranges.length && StepMap.empty)\n return StepMap.empty;\n }\n /**\n @internal\n */\n recover(value) {\n let diff = 0, index = recoverIndex(value);\n if (!this.inverted)\n for (let i = 0; i < index; i++)\n diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1];\n return this.ranges[index * 3] + diff + recoverOffset(value);\n }\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n map(pos, assoc = 1) { return this._map(pos, assoc, true); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n let side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n let result = start + diff + (side < 0 ? 0 : newSize);\n if (simple)\n return result;\n let recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n let del = pos == start ? DEL_AFTER : pos == end ? DEL_BEFORE : DEL_ACROSS;\n if (assoc < 0 ? pos != start : pos != end)\n del |= DEL_SIDE;\n return new MapResult(result, del, recover);\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff, 0, null);\n }\n /**\n @internal\n */\n touches(pos, recover) {\n let diff = 0, index = recoverIndex(recover);\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3)\n return true;\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false;\n }\n /**\n Calls the given function on each of the changed ranges included in\n this map.\n */\n forEach(f) {\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0, diff = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n }\n /**\n Create an inverted version of this map. The result can be used to\n map positions in the post-step document to the pre-step document.\n */\n invert() {\n return new StepMap(this.ranges, !this.inverted);\n }\n /**\n @internal\n */\n toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n }\n /**\n Create a map that moves all positions by offset `n` (which may be\n negative). This can be useful when applying steps meant for a\n sub-document to a larger document, or vice-versa.\n */\n static offset(n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n]);\n }\n}\n/**\nA StepMap that contains no changed ranges.\n*/\nStepMap.empty = new StepMap([]);\n/**\nA mapping represents a pipeline of zero or more [step\nmaps](https://prosemirror.net/docs/ref/#transform.StepMap). It has special provisions for losslessly\nhandling mapping positions through a series of steps in which some\nsteps are inverted versions of earlier steps. (This comes up when\n‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\ncollaboration or history management.)\n*/\nclass Mapping {\n /**\n Create a new mapping with the given position maps.\n */\n constructor(\n /**\n The step maps in this mapping.\n */\n maps = [], \n /**\n @internal\n */\n mirror, \n /**\n The starting position in the `maps` array, used when `map` or\n `mapResult` is called.\n */\n from = 0, \n /**\n The end position in the `maps` array.\n */\n to = maps.length) {\n this.maps = maps;\n this.mirror = mirror;\n this.from = from;\n this.to = to;\n }\n /**\n Create a mapping that maps only through a part of this one.\n */\n slice(from = 0, to = this.maps.length) {\n return new Mapping(this.maps, this.mirror, from, to);\n }\n /**\n @internal\n */\n copy() {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to);\n }\n /**\n Add a step map to the end of this mapping. If `mirrors` is\n given, it should be the index of the step map that is the mirror\n image of this one.\n */\n appendMap(map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null)\n this.setMirror(this.maps.length - 1, mirrors);\n }\n /**\n Add all the step maps in a given mapping to this one (preserving\n mirroring information).\n */\n appendMapping(mapping) {\n for (let i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : undefined);\n }\n }\n /**\n Finds the offset of the step map that mirrors the map at the\n given offset, in this mapping (as per the second argument to\n `appendMap`).\n */\n getMirror(n) {\n if (this.mirror)\n for (let i = 0; i < this.mirror.length; i++)\n if (this.mirror[i] == n)\n return this.mirror[i + (i % 2 ? -1 : 1)];\n }\n /**\n @internal\n */\n setMirror(n, m) {\n if (!this.mirror)\n this.mirror = [];\n this.mirror.push(n, m);\n }\n /**\n Append the inverse of the given mapping to this one.\n */\n appendMappingInverted(mapping) {\n for (let i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : undefined);\n }\n }\n /**\n Create an inverted version of this mapping.\n */\n invert() {\n let inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse;\n }\n /**\n Map a position through this mapping.\n */\n map(pos, assoc = 1) {\n if (this.mirror)\n return this._map(pos, assoc, true);\n for (let i = this.from; i < this.to; i++)\n pos = this.maps[i].map(pos, assoc);\n return pos;\n }\n /**\n Map a position through this mapping, returning a mapping\n result.\n */\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let delInfo = 0;\n for (let i = this.from; i < this.to; i++) {\n let map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n let corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue;\n }\n }\n delInfo |= result.delInfo;\n pos = result.pos;\n }\n return simple ? pos : new MapResult(pos, delInfo, null);\n }\n}\n\nconst stepsByID = Object.create(null);\n/**\nA step object represents an atomic change. It generally applies\nonly to the document it was created for, since the positions\nstored in it will only make sense for that document.\n\nNew steps are defined by creating classes that extend `Step`,\noverriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\nmethods, and registering your class with a unique\nJSON-serialization identifier using\n[`Step.jsonID`](https://prosemirror.net/docs/ref/#transform.Step^jsonID).\n*/\nclass Step {\n /**\n Get the step map that represents the changes made by this step,\n and which can be used to transform between positions in the old\n and the new document.\n */\n getMap() { return StepMap.empty; }\n /**\n Try to merge this step with another one, to be applied directly\n after it. Returns the merged step when possible, null if the\n steps can't be merged.\n */\n merge(other) { return null; }\n /**\n Deserialize a step from its JSON representation. Will call\n through to the step class' own implementation of this method.\n */\n static fromJSON(schema, json) {\n if (!json || !json.stepType)\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n let type = stepsByID[json.stepType];\n if (!type)\n throw new RangeError(`No step type ${json.stepType} defined`);\n return type.fromJSON(schema, json);\n }\n /**\n To be able to serialize steps to JSON, each step needs a string\n ID to attach to its JSON representation. Use this method to\n register an ID for your step classes. Try to pick something\n that's unlikely to clash with steps from other modules.\n */\n static jsonID(id, stepClass) {\n if (id in stepsByID)\n throw new RangeError(\"Duplicate use of step JSON ID \" + id);\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass;\n }\n}\n/**\nThe result of [applying](https://prosemirror.net/docs/ref/#transform.Step.apply) a step. Contains either a\nnew document or a failure value.\n*/\nclass StepResult {\n /**\n @internal\n */\n constructor(\n /**\n The transformed document, if successful.\n */\n doc, \n /**\n The failure message, if unsuccessful.\n */\n failed) {\n this.doc = doc;\n this.failed = failed;\n }\n /**\n Create a successful step result.\n */\n static ok(doc) { return new StepResult(doc, null); }\n /**\n Create a failed step result.\n */\n static fail(message) { return new StepResult(null, message); }\n /**\n Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given\n arguments. Create a successful result if it succeeds, and a\n failed one if it throws a `ReplaceError`.\n */\n static fromReplace(doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice));\n }\n catch (e) {\n if (e instanceof ReplaceError)\n return StepResult.fail(e.message);\n throw e;\n }\n }\n}\n\nfunction mapFragment(fragment, f, parent) {\n let mapped = [];\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i);\n if (child.content.size)\n child = child.copy(mapFragment(child.content, f, child));\n if (child.isInline)\n child = f(child, parent, i);\n mapped.push(child);\n }\n return Fragment.fromArray(mapped);\n}\n/**\nAdd a mark to all inline content between two positions.\n*/\nclass AddMarkStep extends Step {\n /**\n Create a mark step.\n */\n constructor(\n /**\n The start of the marked range.\n */\n from, \n /**\n The end of the marked range.\n */\n to, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n let parent = $from.node($from.sharedDepth(this.to));\n let slice = new Slice(mapFragment(oldSlice.content, (node, parent) => {\n if (!node.isAtom || !parent.type.allowsMarkType(this.mark.type))\n return node;\n return node.mark(this.mark.addToSet(node.marks));\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new RemoveMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new AddMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new AddMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addMark\", AddMarkStep);\n/**\nRemove a mark from all inline content between two positions.\n*/\nclass RemoveMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The start of the unmarked range.\n */\n from, \n /**\n The end of the unmarked range.\n */\n to, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to);\n let slice = new Slice(mapFragment(oldSlice.content, node => {\n return node.mark(this.mark.removeFromSet(node.marks));\n }, doc), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new AddMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new RemoveMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new RemoveMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n/**\nAdd a mark to a specific node.\n*/\nclass AddNodeMarkStep extends Step {\n /**\n Create a node mark step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (node) {\n let newSet = this.mark.addToSet(node.marks);\n if (newSet.length == node.marks.length) {\n for (let i = 0; i < node.marks.length; i++)\n if (!node.marks[i].isInSet(newSet))\n return new AddNodeMarkStep(this.pos, node.marks[i]);\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n }\n return new RemoveNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AddNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"addNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");\n return new AddNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addNodeMark\", AddNodeMarkStep);\n/**\nRemove a mark from a specific node.\n*/\nclass RemoveNodeMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node || !this.mark.isInSet(node.marks))\n return this;\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new RemoveNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"removeNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");\n return new RemoveNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeNodeMark\", RemoveNodeMarkStep);\n\n/**\nReplace a part of the document with a slice of new content.\n*/\nclass ReplaceStep extends Step {\n /**\n The given `slice` should fit the 'gap' between `from` and\n `to`—the depths must line up, and the surrounding nodes must be\n able to be joined with the open sides of the slice. When\n `structure` is true, the step will fail if the content between\n from and to is not just a sequence of closing and then opening\n tokens (this is to guard against rebased replace steps\n overwriting something they weren't supposed to).\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The slice to insert.\n */\n slice, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.slice = slice;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n return StepResult.fail(\"Structure replace would overwrite content\");\n return StepResult.fromReplace(doc, this.from, this.to, this.slice);\n }\n getMap() {\n return new StepMap([this.from, this.to - this.from, this.slice.size]);\n }\n invert(doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to));\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deletedAcross && to.deletedAcross)\n return null;\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice);\n }\n merge(other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure)\n return null;\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure);\n }\n else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice, this.structure);\n }\n else {\n return null;\n }\n }\n toJSON() {\n let json = { stepType: \"replace\", from: this.from, to: this.to };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure);\n }\n}\nStep.jsonID(\"replace\", ReplaceStep);\n/**\nReplace a part of the document with a slice of content, but\npreserve a range of the replaced content by moving it into the\nslice.\n*/\nclass ReplaceAroundStep extends Step {\n /**\n Create a replace-around step with the given range and gap.\n `insert` should be the point in the slice into which the content\n of the gap should be moved. `structure` has the same meaning as\n it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The start of preserved range.\n */\n gapFrom, \n /**\n The end of preserved range.\n */\n gapTo, \n /**\n The slice to insert.\n */\n slice, \n /**\n The position in the slice where the preserved range should be\n inserted.\n */\n insert, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.gapFrom = gapFrom;\n this.gapTo = gapTo;\n this.slice = slice;\n this.insert = insert;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n return StepResult.fail(\"Structure gap-replace would overwrite content\");\n let gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n return StepResult.fail(\"Gap is not a flat range\");\n let inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted)\n return StepResult.fail(\"Content does not fit in gap\");\n return StepResult.fromReplace(doc, this.from, this.to, inserted);\n }\n getMap() {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert]);\n }\n invert(doc) {\n let gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap, this.from + this.insert, this.from + this.insert + gap, doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n let gapFrom = this.from == this.gapFrom ? from.pos : mapping.map(this.gapFrom, -1);\n let gapTo = this.to == this.gapTo ? to.pos : mapping.map(this.gapTo, 1);\n if ((from.deletedAcross && to.deletedAcross) || gapFrom < from.pos || gapTo > to.pos)\n return null;\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure);\n }\n toJSON() {\n let json = { stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo, Slice.fromJSON(schema, json.slice), json.insert, !!json.structure);\n }\n}\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\nfunction contentBetween(doc, from, to) {\n let $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n let next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf)\n return true;\n next = next.firstChild;\n dist--;\n }\n }\n return false;\n}\n\nfunction addMark(tr, from, to, mark) {\n let removed = [], added = [];\n let removing, adding;\n tr.doc.nodesBetween(from, to, (node, pos, parent) => {\n if (!node.isInline)\n return;\n let marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n let start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n let newSet = mark.addToSet(marks);\n for (let i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n removing.to = end;\n else\n removed.push(removing = new RemoveMarkStep(start, end, marks[i]));\n }\n }\n if (adding && adding.to == start)\n adding.to = end;\n else\n added.push(adding = new AddMarkStep(start, end, mark));\n }\n });\n removed.forEach(s => tr.step(s));\n added.forEach(s => tr.step(s));\n}\nfunction removeMark(tr, from, to, mark) {\n let matched = [], step = 0;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isInline)\n return;\n step++;\n let toRemove = null;\n if (mark instanceof MarkType) {\n let set = node.marks, found;\n while (found = mark.isInSet(set)) {\n (toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n }\n else if (mark) {\n if (mark.isInSet(node.marks))\n toRemove = [mark];\n }\n else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n let end = Math.min(pos + node.nodeSize, to);\n for (let i = 0; i < toRemove.length; i++) {\n let style = toRemove[i], found;\n for (let j = 0; j < matched.length; j++) {\n let m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style))\n found = m;\n }\n if (found) {\n found.to = end;\n found.step = step;\n }\n else {\n matched.push({ style, from: Math.max(pos, from), to: end, step });\n }\n }\n }\n });\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)));\n}\nfunction clearIncompatible(tr, pos, parentType, match = parentType.contentMatch, clearNewlines = true) {\n let node = tr.doc.nodeAt(pos);\n let replSteps = [], cur = pos + 1;\n for (let i = 0; i < node.childCount; i++) {\n let child = node.child(i), end = cur + child.nodeSize;\n let allowed = match.matchType(child.type);\n if (!allowed) {\n replSteps.push(new ReplaceStep(cur, end, Slice.empty));\n }\n else {\n match = allowed;\n for (let j = 0; j < child.marks.length; j++)\n if (!parentType.allowsMarkType(child.marks[j].type))\n tr.step(new RemoveMarkStep(cur, end, child.marks[j]));\n if (clearNewlines && child.isText && parentType.whitespace != \"pre\") {\n let m, newline = /\\r?\\n|\\r/g, slice;\n while (m = newline.exec(child.text)) {\n if (!slice)\n slice = new Slice(Fragment.from(parentType.schema.text(\" \", parentType.allowedMarks(child.marks))), 0, 0);\n replSteps.push(new ReplaceStep(cur + m.index, cur + m.index + m[0].length, slice));\n }\n }\n }\n cur = end;\n }\n if (!match.validEnd) {\n let fill = match.fillBefore(Fragment.empty, true);\n tr.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (let i = replSteps.length - 1; i >= 0; i--)\n tr.step(replSteps[i]);\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end));\n}\n/**\nTry to find a target depth to which the content in the given range\ncan be lifted. Will not go across\n[isolating](https://prosemirror.net/docs/ref/#model.NodeSpec.isolating) parent nodes.\n*/\nfunction liftTarget(range) {\n let parent = range.parent;\n let content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (let depth = range.depth;; --depth) {\n let node = range.$from.node(depth);\n let index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n return depth;\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex))\n break;\n }\n return null;\n}\nfunction lift(tr, range, target) {\n let { $from, $to, depth } = range;\n let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n let start = gapStart, end = gapEnd;\n let before = Fragment.empty, openStart = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n }\n else {\n start--;\n }\n let after = Fragment.empty, openEnd = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $to.after(d + 1) < $to.end(d)) {\n splitting = true;\n after = Fragment.from($to.node(d).copy(after));\n openEnd++;\n }\n else {\n end++;\n }\n tr.step(new ReplaceAroundStep(start, end, gapStart, gapEnd, new Slice(before.append(after), openStart, openEnd), before.size - openStart, true));\n}\n/**\nTry to find a valid way to wrap the content in the given range in a\nnode of the given type. May introduce extra nodes around and inside\nthe wrapper node, if necessary. Returns null if no valid wrapping\ncould be found. When `innerRange` is given, that range's content is\nused as the content to fit into the wrapping, instead of the\ncontent of `range`.\n*/\nfunction findWrapping(range, nodeType, attrs = null, innerRange = range) {\n let around = findWrappingOutside(range, nodeType);\n let inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner)\n return null;\n return around.map(withAttrs)\n .concat({ type: nodeType, attrs }).concat(inner.map(withAttrs));\n}\nfunction withAttrs(type) { return { type, attrs: null }; }\nfunction findWrappingOutside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around)\n return null;\n let outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n}\nfunction findWrappingInside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let inner = parent.child(startIndex);\n let inside = type.contentMatch.findWrapping(inner.type);\n if (!inside)\n return null;\n let lastType = inside.length ? inside[inside.length - 1] : type;\n let innerMatch = lastType.contentMatch;\n for (let i = startIndex; innerMatch && i < endIndex; i++)\n innerMatch = innerMatch.matchType(parent.child(i).type);\n if (!innerMatch || !innerMatch.validEnd)\n return null;\n return inside;\n}\nfunction wrap(tr, range, wrappers) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--) {\n if (content.size) {\n let match = wrappers[i].type.contentMatch.matchFragment(content);\n if (!match || !match.validEnd)\n throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\");\n }\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n let start = range.start, end = range.end;\n tr.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true));\n}\nfunction setBlockType(tr, from, to, type, attrs) {\n if (!type.isTextblock)\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n let mapFrom = tr.steps.length;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n let attrsHere = typeof attrs == \"function\" ? attrs(node) : attrs;\n if (node.isTextblock && !node.hasMarkup(type, attrsHere) &&\n canChangeType(tr.doc, tr.mapping.slice(mapFrom).map(pos), type)) {\n let convertNewlines = null;\n if (type.schema.linebreakReplacement) {\n let pre = type.whitespace == \"pre\", supportLinebreak = !!type.contentMatch.matchType(type.schema.linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n // Ensure all markup that isn't allowed in the new node type is cleared\n if (convertNewlines === false)\n replaceLinebreaks(tr, node, pos, mapFrom);\n clearIncompatible(tr, tr.mapping.slice(mapFrom).map(pos, 1), type, undefined, convertNewlines === null);\n let mapping = tr.mapping.slice(mapFrom);\n let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n tr.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(Fragment.from(type.create(attrsHere, null, node.marks)), 0, 0), 1, true));\n if (convertNewlines === true)\n replaceNewlines(tr, node, pos, mapFrom);\n return false;\n }\n });\n}\nfunction replaceNewlines(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.isText) {\n let m, newline = /\\r?\\n|\\r/g;\n while (m = newline.exec(child.text)) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset + m.index);\n tr.replaceWith(start, start + 1, node.type.schema.linebreakReplacement.create());\n }\n }\n });\n}\nfunction replaceLinebreaks(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.type == child.type.schema.linebreakReplacement) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset);\n tr.replaceWith(start, start + 1, node.type.schema.text(\"\\n\"));\n }\n });\n}\nfunction canChangeType(doc, pos, type) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n}\n/**\nChange the type, attributes, and/or marks of the node at `pos`.\nWhen `type` isn't given, the existing node type is preserved,\n*/\nfunction setNodeMarkup(tr, pos, type, attrs, marks) {\n let node = tr.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at given position\");\n if (!type)\n type = node.type;\n let newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n return tr.replaceWith(pos, pos + node.nodeSize, newNode);\n if (!type.validContent(node.content))\n throw new RangeError(\"Invalid content for node type \" + type.name);\n tr.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(Fragment.from(newNode), 0, 0), 1, true));\n}\n/**\nCheck whether splitting at the given position is allowed.\n*/\nfunction canSplit(doc, pos, depth = 1, typesAfter) {\n let $pos = doc.resolve(pos), base = $pos.depth - depth;\n let innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n return false;\n for (let d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n let node = $pos.node(d), index = $pos.index(d);\n if (node.type.spec.isolating)\n return false;\n let rest = node.content.cutByIndex(index, node.childCount);\n let overrideChild = typesAfter && typesAfter[i + 1];\n if (overrideChild)\n rest = rest.replaceChild(0, overrideChild.type.create(overrideChild.attrs));\n let after = (typesAfter && typesAfter[i]) || node;\n if (!node.canReplace(index + 1, node.childCount) || !after.type.validContent(rest))\n return false;\n }\n let index = $pos.indexAfter(base);\n let baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type);\n}\nfunction split(tr, pos, depth = 1, typesAfter) {\n let $pos = tr.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (let d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n let typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n tr.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true));\n}\n/**\nTest whether the blocks before and after a given position can be\njoined.\n*/\nfunction canJoin(doc, pos) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1);\n}\nfunction joinable(a, b) {\n return !!(a && b && !a.isLeaf && a.canAppend(b));\n}\n/**\nFind an ancestor of the given position that can be joined to the\nblock before (or after if `dir` is positive). Returns the joinable\npoint, if any.\n*/\nfunction joinPoint(doc, pos, dir = -1) {\n let $pos = doc.resolve(pos);\n for (let d = $pos.depth;; d--) {\n let before, after, index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n }\n else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n }\n else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1))\n return pos;\n if (d == 0)\n break;\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\nfunction join(tr, pos, depth) {\n let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);\n tr.step(step);\n}\n/**\nTry to find a point where a node of the given type can be inserted\nnear `pos`, by searching up the node hierarchy when `pos` itself\nisn't a valid place but is at the start or end of a node. Return\nnull if no position was found.\n*/\nfunction insertPoint(doc, pos, nodeType) {\n let $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType))\n return pos;\n if ($pos.parentOffset == 0)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.before(d + 1);\n if (index > 0)\n return null;\n }\n if ($pos.parentOffset == $pos.parent.content.size)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.indexAfter(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.after(d + 1);\n if (index < $pos.node(d).childCount)\n return null;\n }\n return null;\n}\n/**\nFinds a position at or around the given position where the given\nslice can be inserted. Will look at parent nodes' nearest boundary\nand try there, even if the original position wasn't directly at the\nstart or end of that node. Returns null when no position was found.\n*/\nfunction dropPoint(doc, pos, slice) {\n let $pos = doc.resolve(pos);\n if (!slice.content.size)\n return pos;\n let content = slice.content;\n for (let i = 0; i < slice.openStart; i++)\n content = content.firstChild.content;\n for (let pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (let d = $pos.depth; d >= 0; d--) {\n let bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n let insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n let parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n }\n else {\n let wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1);\n }\n }\n return null;\n}\n\n/**\n‘Fit’ a slice into a given position in the document, producing a\n[step](https://prosemirror.net/docs/ref/#transform.Step) that inserts it. Will return null if\nthere's no meaningful way to insert the slice here, or inserting it\nwould be a no-op (an empty slice over an empty range).\n*/\nfunction replaceStep(doc, from, to = from, slice = Slice.empty) {\n if (from == to && !slice.size)\n return null;\n let $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice))\n return new ReplaceStep(from, to, slice);\n return new Fitter($from, $to, slice).fit();\n}\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content);\n}\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nclass Fitter {\n constructor($from, $to, unplaced) {\n this.$from = $from;\n this.$to = $to;\n this.unplaced = unplaced;\n this.frontier = [];\n this.placed = Fragment.empty;\n for (let i = 0; i <= $from.depth; i++) {\n let node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n for (let i = $from.depth; i > 0; i--)\n this.placed = Fragment.from($from.node(i).copy(this.placed));\n }\n get depth() { return this.frontier.length - 1; }\n fit() {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n let fit = this.findFittable();\n if (fit)\n this.placeNodes(fit);\n else\n this.openMore() || this.dropNode();\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n let moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n let $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to)\n return null;\n // If closing to `$to` succeeded, create a step\n let content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--;\n openEnd--;\n }\n let slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize);\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n return new ReplaceStep($from.pos, $to.pos, slice);\n return null;\n }\n // Find a position on the start spine of `this.unplaced` that has\n // content that can be moved somewhere on the frontier. Returns two\n // depths, one for the slice and one for the frontier.\n findFittable() {\n let startDepth = this.unplaced.openStart;\n for (let cur = this.unplaced.content, d = 0, openEnd = this.unplaced.openEnd; d < startDepth; d++) {\n let node = cur.firstChild;\n if (cur.childCount > 1)\n openEnd = 0;\n if (node.type.spec.isolating && openEnd <= d) {\n startDepth = d;\n break;\n }\n cur = node.content;\n }\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (let pass = 1; pass <= 2; pass++) {\n for (let sliceDepth = pass == 1 ? startDepth : this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n let fragment, parent = null;\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n }\n else {\n fragment = this.unplaced.content;\n }\n let first = fragment.firstChild;\n for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n let { type, match } = this.frontier[frontierDepth], wrap, inject = null;\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : parent && type.compatibleContent(parent.type)))\n return { sliceDepth, frontierDepth, parent, inject };\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n return { sliceDepth, frontierDepth, parent, wrap };\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type))\n break;\n }\n }\n }\n }\n openMore() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf)\n return false;\n this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true;\n }\n dropNode() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n let openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1, openAtEnd ? openStart - 1 : openEnd);\n }\n else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n }\n // Move content from the unplaced slice at `sliceDepth` to the\n // frontier node at `frontierDepth`. Close that frontier node when\n // applicable.\n placeNodes({ sliceDepth, frontierDepth, parent, inject, wrap }) {\n while (this.depth > frontierDepth)\n this.closeFrontierNode();\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n this.openFrontierNode(wrap[i]);\n let slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n let openStart = slice.openStart - sliceDepth;\n let taken = 0, add = [];\n let { match, type } = this.frontier[frontierDepth];\n if (inject) {\n for (let i = 0; i < inject.childCount; i++)\n add.push(inject.child(i));\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n let openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n let next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches)\n break;\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0, taken == fragment.childCount ? openEndCount : -1));\n }\n }\n let toEnd = taken == fragment.childCount;\n if (!toEnd)\n openEndCount = -1;\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n this.closeFrontierNode();\n // Add new frontier nodes for any open nodes at the end.\n for (let i = 0, cur = fragment; i < openEndCount; i++) {\n let node = cur.lastChild;\n this.frontier.push({ type: node.type, match: node.contentMatchAt(node.childCount) });\n cur = node.content;\n }\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1), sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n }\n mustMoveInline() {\n if (!this.$to.parent.isTextblock)\n return -1;\n let top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth))\n return -1;\n let { depth } = this.$to, after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth))\n ++after;\n return after;\n }\n findCloseLevel($to) {\n scan: for (let i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n let { match, type } = this.frontier[i];\n let dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n let fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit)\n continue;\n for (let d = i - 1; d >= 0; d--) {\n let { match, type } = this.frontier[d];\n let matches = contentAfterFits($to, d, type, match, true);\n if (!matches || matches.childCount)\n continue scan;\n }\n return { depth: i, fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to };\n }\n }\n close($to) {\n let close = this.findCloseLevel($to);\n if (!close)\n return null;\n while (this.depth > close.depth)\n this.closeFrontierNode();\n if (close.fit.childCount)\n this.placed = addToFragment(this.placed, close.depth, close.fit);\n $to = close.move;\n for (let d = close.depth + 1; d <= $to.depth; d++) {\n let node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to;\n }\n openFrontierNode(type, attrs = null, content) {\n let top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({ type, match: type.contentMatch });\n }\n closeFrontierNode() {\n let open = this.frontier.pop();\n let add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount)\n this.placed = addToFragment(this.placed, this.frontier.length, add);\n }\n}\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0)\n return fragment.cutByIndex(count, fragment.childCount);\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)));\n}\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0)\n return fragment.append(content);\n return fragment.replaceChild(fragment.childCount - 1, fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)));\n}\nfunction contentAt(fragment, depth) {\n for (let i = 0; i < depth; i++)\n fragment = fragment.firstChild.content;\n return fragment;\n}\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0)\n return node;\n let frag = node.content;\n if (openStart > 1)\n frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0));\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0)\n frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true));\n }\n return node.copy(frag);\n}\nfunction contentAfterFits($to, depth, type, match, open) {\n let node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type))\n return null;\n let fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null;\n}\nfunction invalidMarks(type, fragment, start) {\n for (let i = start; i < fragment.childCount; i++)\n if (!type.allowsMarks(fragment.child(i).marks))\n return true;\n return false;\n}\nfunction definesContent(type) {\n return type.spec.defining || type.spec.definingForContent;\n}\nfunction replaceRange(tr, from, to, slice) {\n if (!slice.size)\n return tr.deleteRange(from, to);\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n return tr.step(new ReplaceStep(from, to, slice));\n let targetDepths = coveredDepths($from, tr.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0)\n targetDepths.pop();\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n let preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (let d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n let spec = $from.node(d).type.spec;\n if (spec.defining || spec.definingAsContext || spec.isolating)\n break;\n if (targetDepths.indexOf(d) > -1)\n preferredTarget = d;\n else if ($from.before(d) == pos)\n targetDepths.splice(1, 0, -d);\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n let preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n let leftNodes = [], preferredDepth = slice.openStart;\n for (let content = slice.content, i = 0;; i++) {\n let node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart)\n break;\n content = node.content;\n }\n // Back up preferredDepth to cover defining textblocks directly\n // above it, possibly skipping a non-defining textblock.\n for (let d = preferredDepth - 1; d >= 0; d--) {\n let leftNode = leftNodes[d], def = definesContent(leftNode.type);\n if (def && !leftNode.sameMarkup($from.node(Math.abs(preferredTarget) - 1)))\n preferredDepth = d;\n else if (def || !leftNode.type.isTextblock)\n break;\n }\n for (let j = slice.openStart; j >= 0; j--) {\n let openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n let insert = leftNodes[openDepth];\n if (!insert)\n continue;\n for (let i = 0; i < targetDepths.length; i++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n let targetDepth = targetDepths[(i + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) {\n expand = false;\n targetDepth = -targetDepth;\n }\n let parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n return tr.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to, new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth), openDepth, slice.openEnd));\n }\n }\n let startSteps = tr.steps.length;\n for (let i = targetDepths.length - 1; i >= 0; i--) {\n tr.replace(from, to, slice);\n if (tr.steps.length > startSteps)\n break;\n let depth = targetDepths[i];\n if (depth < 0)\n continue;\n from = $from.before(depth);\n to = $to.after(depth);\n }\n}\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n let first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n let match = parent.contentMatchAt(0);\n let start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment;\n}\nfunction replaceRangeWith(tr, from, to, node) {\n if (!node.isInline && from == to && tr.doc.resolve(from).parent.content.size) {\n let point = insertPoint(tr.doc, from, node.type);\n if (point != null)\n from = to = point;\n }\n tr.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0));\n}\nfunction deleteRange(tr, from, to) {\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n let covered = coveredDepths($from, $to);\n for (let i = 0; i < covered.length; i++) {\n let depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n return tr.delete($from.start(depth), $to.end(depth));\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n return tr.delete($from.before(depth), $to.after(depth));\n }\n for (let d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d)\n return tr.delete($from.before(d), to);\n }\n tr.delete(from, to);\n}\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n let result = [], minDepth = Math.min($from.depth, $to.depth);\n for (let d = minDepth; d >= 0; d--) {\n let start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating)\n break;\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n result.push(d);\n }\n return result;\n}\n\n/**\nUpdate an attribute in a specific node.\n*/\nclass AttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.pos = pos;\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at attribute step's position\");\n let attrs = Object.create(null);\n for (let name in node.attrs)\n attrs[name] = node.attrs[name];\n attrs[this.attr] = this.value;\n let updated = node.type.create(attrs, null, node.marks);\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new AttrStep(this.pos, this.attr, doc.nodeAt(this.pos).attrs[this.attr]);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AttrStep(pos.pos, this.attr, this.value);\n }\n toJSON() {\n return { stepType: \"attr\", pos: this.pos, attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\" || typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for AttrStep.fromJSON\");\n return new AttrStep(json.pos, json.attr, json.value);\n }\n}\nStep.jsonID(\"attr\", AttrStep);\n/**\nUpdate an attribute in the doc node.\n*/\nclass DocAttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let attrs = Object.create(null);\n for (let name in doc.attrs)\n attrs[name] = doc.attrs[name];\n attrs[this.attr] = this.value;\n let updated = doc.type.create(attrs, doc.content, doc.marks);\n return StepResult.ok(updated);\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new DocAttrStep(this.attr, doc.attrs[this.attr]);\n }\n map(mapping) {\n return this;\n }\n toJSON() {\n return { stepType: \"docAttr\", attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for DocAttrStep.fromJSON\");\n return new DocAttrStep(json.attr, json.value);\n }\n}\nStep.jsonID(\"docAttr\", DocAttrStep);\n\n/**\n@internal\n*/\nlet TransformError = class extends Error {\n};\nTransformError = function TransformError(message) {\n let err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err;\n};\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n/**\nAbstraction to build up and track an array of\n[steps](https://prosemirror.net/docs/ref/#transform.Step) representing a document transformation.\n\nMost transforming methods return the `Transform` object itself, so\nthat they can be chained.\n*/\nclass Transform {\n /**\n Create a transform that starts with the given document.\n */\n constructor(\n /**\n The current document (the result of applying the steps in the\n transform).\n */\n doc) {\n this.doc = doc;\n /**\n The steps in this transform.\n */\n this.steps = [];\n /**\n The documents before each of the steps.\n */\n this.docs = [];\n /**\n A mapping with the maps for each of the steps in this transform.\n */\n this.mapping = new Mapping;\n }\n /**\n The starting document.\n */\n get before() { return this.docs.length ? this.docs[0] : this.doc; }\n /**\n Apply a new step in this transform, saving the result. Throws an\n error when the step fails.\n */\n step(step) {\n let result = this.maybeStep(step);\n if (result.failed)\n throw new TransformError(result.failed);\n return this;\n }\n /**\n Try to apply a step in this transformation, ignoring it if it\n fails. Returns the step result.\n */\n maybeStep(step) {\n let result = step.apply(this.doc);\n if (!result.failed)\n this.addStep(step, result.doc);\n return result;\n }\n /**\n True when the document has been changed (when there are any\n steps).\n */\n get docChanged() {\n return this.steps.length > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n }\n /**\n Replace the part of the document between `from` and `to` with the\n given `slice`.\n */\n replace(from, to = from, slice = Slice.empty) {\n let step = replaceStep(this.doc, from, to, slice);\n if (step)\n this.step(step);\n return this;\n }\n /**\n Replace the given range with the given content, which may be a\n fragment, node, or array of nodes.\n */\n replaceWith(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0));\n }\n /**\n Delete the content between the given positions.\n */\n delete(from, to) {\n return this.replace(from, to, Slice.empty);\n }\n /**\n Insert the given content at the given position.\n */\n insert(pos, content) {\n return this.replaceWith(pos, pos, content);\n }\n /**\n Replace a range of the document with a given slice, using\n `from`, `to`, and the slice's\n [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather\n than fixed start and end points. This method may grow the\n replaced area or close open nodes in the slice in order to get a\n fit that is more in line with WYSIWYG expectations, by dropping\n fully covered parent nodes of the replaced region when they are\n marked [non-defining as\n context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an\n open parent node from the slice that _is_ marked as [defining\n its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n \n This is the method, for example, to handle paste. The similar\n [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more\n primitive tool which will _not_ move the start and end of its given\n range, and is useful in situations where you need more precise\n control over what happens.\n */\n replaceRange(from, to, slice) {\n replaceRange(this, from, to, slice);\n return this;\n }\n /**\n Replace the given range with a node, but use `from` and `to` as\n hints, rather than precise positions. When from and to are the same\n and are at the start or end of a parent node in which the given\n node doesn't fit, this method may _move_ them out towards a parent\n that does allow the given node to be placed. When the given range\n completely covers a parent node, this method may completely replace\n that parent node.\n */\n replaceRangeWith(from, to, node) {\n replaceRangeWith(this, from, to, node);\n return this;\n }\n /**\n Delete the given range, expanding it to cover fully covered\n parent nodes until a valid replace is found.\n */\n deleteRange(from, to) {\n deleteRange(this, from, to);\n return this;\n }\n /**\n Split the content in the given range off from its parent, if there\n is sibling content before or after it, and move it up the tree to\n the depth specified by `target`. You'll probably want to use\n [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make\n sure the lift is valid.\n */\n lift(range, target) {\n lift(this, range, target);\n return this;\n }\n /**\n Join the blocks around the given position. If depth is 2, their\n last and first siblings are also joined, and so on.\n */\n join(pos, depth = 1) {\n join(this, pos, depth);\n return this;\n }\n /**\n Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.\n The wrappers are assumed to be valid in this position, and should\n probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).\n */\n wrap(range, wrappers) {\n wrap(this, range, wrappers);\n return this;\n }\n /**\n Set the type of all textblocks (partly) between `from` and `to` to\n the given node type with the given attributes.\n */\n setBlockType(from, to = from, type, attrs = null) {\n setBlockType(this, from, to, type, attrs);\n return this;\n }\n /**\n Change the type, attributes, and/or marks of the node at `pos`.\n When `type` isn't given, the existing node type is preserved,\n */\n setNodeMarkup(pos, type, attrs = null, marks) {\n setNodeMarkup(this, pos, type, attrs, marks);\n return this;\n }\n /**\n Set a single attribute on a given node to a new value.\n The `pos` addresses the document content. Use `setDocAttribute`\n to set attributes on the document itself.\n */\n setNodeAttribute(pos, attr, value) {\n this.step(new AttrStep(pos, attr, value));\n return this;\n }\n /**\n Set a single attribute on the document to a new value.\n */\n setDocAttribute(attr, value) {\n this.step(new DocAttrStep(attr, value));\n return this;\n }\n /**\n Add a mark to the node at position `pos`.\n */\n addNodeMark(pos, mark) {\n this.step(new AddNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Remove a mark (or a mark of the given type) from the node at\n position `pos`.\n */\n removeNodeMark(pos, mark) {\n if (!(mark instanceof Mark)) {\n let node = this.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at position \" + pos);\n mark = mark.isInSet(node.marks);\n if (!mark)\n return this;\n }\n this.step(new RemoveNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Split the node at the given position, and optionally, if `depth` is\n greater than one, any number of nodes above that. By default, the\n parts split off will inherit the node type of the original node.\n This can be changed by passing an array of types and attributes to\n use after the split.\n */\n split(pos, depth = 1, typesAfter) {\n split(this, pos, depth, typesAfter);\n return this;\n }\n /**\n Add the given mark to the inline content between `from` and `to`.\n */\n addMark(from, to, mark) {\n addMark(this, from, to, mark);\n return this;\n }\n /**\n Remove marks from inline nodes between `from` and `to`. When\n `mark` is a single mark, remove precisely that mark. When it is\n a mark type, remove all marks of that type. When it is null,\n remove all marks of any type.\n */\n removeMark(from, to, mark) {\n removeMark(this, from, to, mark);\n return this;\n }\n /**\n Removes all marks and nodes from the content of the node at\n `pos` that don't match the given new parent node type. Accepts\n an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as\n third argument.\n */\n clearIncompatible(pos, parentType, match) {\n clearIncompatible(this, pos, parentType, match);\n return this;\n }\n}\n\nexport { AddMarkStep, AddNodeMarkStep, AttrStep, DocAttrStep, MapResult, Mapping, RemoveMarkStep, RemoveNodeMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };\n","import { Slice, Fragment, Mark, Node } from 'prosemirror-model';\nimport { ReplaceStep, ReplaceAroundStep, Transform } from 'prosemirror-transform';\n\nconst classesById = Object.create(null);\n/**\nSuperclass for editor selections. Every selection type should\nextend this. Should not be instantiated directly.\n*/\nclass Selection {\n /**\n Initialize a selection with the head and anchor and ranges. If no\n ranges are given, constructs a single range across `$anchor` and\n `$head`.\n */\n constructor(\n /**\n The resolved anchor of the selection (the side that stays in\n place when the selection is modified).\n */\n $anchor, \n /**\n The resolved head of the selection (the side that moves when\n the selection is modified).\n */\n $head, ranges) {\n this.$anchor = $anchor;\n this.$head = $head;\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n }\n /**\n The selection's anchor, as an unresolved position.\n */\n get anchor() { return this.$anchor.pos; }\n /**\n The selection's head.\n */\n get head() { return this.$head.pos; }\n /**\n The lower bound of the selection's main range.\n */\n get from() { return this.$from.pos; }\n /**\n The upper bound of the selection's main range.\n */\n get to() { return this.$to.pos; }\n /**\n The resolved lower bound of the selection's main range.\n */\n get $from() {\n return this.ranges[0].$from;\n }\n /**\n The resolved upper bound of the selection's main range.\n */\n get $to() {\n return this.ranges[0].$to;\n }\n /**\n Indicates whether the selection contains any content.\n */\n get empty() {\n let ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++)\n if (ranges[i].$from.pos != ranges[i].$to.pos)\n return false;\n return true;\n }\n /**\n Get the content of this selection as a slice.\n */\n content() {\n return this.$from.doc.slice(this.from, this.to, true);\n }\n /**\n Replace the selection with a slice or, if no slice is given,\n delete the selection. Will append to the given transaction.\n */\n replace(tr, content = Slice.empty) {\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n let lastNode = content.content.lastChild, lastParent = null;\n for (let i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n if (i == 0)\n selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1);\n }\n }\n /**\n Replace the selection with the given node, appending the changes\n to the given transaction.\n */\n replaceWith(tr, node) {\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n let from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n }\n else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n }\n /**\n Find a valid cursor or leaf node selection starting at the given\n position and searching back if `dir` is negative, and forward if\n positive. When `textOnly` is true, only consider cursor\n selections. Will return null when no valid selection position is\n found.\n */\n static findFrom($pos, dir, textOnly = false) {\n let inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner)\n return inner;\n for (let depth = $pos.depth - 1; depth >= 0; depth--) {\n let found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found)\n return found;\n }\n return null;\n }\n /**\n Find a valid cursor or leaf node selection near the given\n position. Searches forward first by default, but if `bias` is\n negative, it will search backwards first.\n */\n static near($pos, bias = 1) {\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0));\n }\n /**\n Find the cursor or leaf node selection closest to the start of\n the given document. Will return an\n [`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position\n exists.\n */\n static atStart(doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc);\n }\n /**\n Find the cursor or leaf node selection closest to the end of the\n given document.\n */\n static atEnd(doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc);\n }\n /**\n Deserialize the JSON representation of a selection. Must be\n implemented for custom classes (as a static class method).\n */\n static fromJSON(doc, json) {\n if (!json || !json.type)\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n let cls = classesById[json.type];\n if (!cls)\n throw new RangeError(`No selection type ${json.type} defined`);\n return cls.fromJSON(doc, json);\n }\n /**\n To be able to deserialize selections from JSON, custom selection\n classes must register themselves with an ID string, so that they\n can be disambiguated. Try to pick something that's unlikely to\n clash with classes from other modules.\n */\n static jsonID(id, selectionClass) {\n if (id in classesById)\n throw new RangeError(\"Duplicate use of selection JSON ID \" + id);\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass;\n }\n /**\n Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,\n which is a value that can be mapped without having access to a\n current document, and later resolved to a real selection for a\n given document again. (This is used mostly by the history to\n track and restore old selections.) The default implementation of\n this method just converts the selection to a text selection and\n returns the bookmark for that.\n */\n getBookmark() {\n return TextSelection.between(this.$anchor, this.$head).getBookmark();\n }\n}\nSelection.prototype.visible = true;\n/**\nRepresents a selected range in a document.\n*/\nclass SelectionRange {\n /**\n Create a range.\n */\n constructor(\n /**\n The lower bound of the range.\n */\n $from, \n /**\n The upper bound of the range.\n */\n $to) {\n this.$from = $from;\n this.$to = $to;\n }\n}\nlet warnedAboutTextSelection = false;\nfunction checkTextSelection($pos) {\n if (!warnedAboutTextSelection && !$pos.parent.inlineContent) {\n warnedAboutTextSelection = true;\n console[\"warn\"](\"TextSelection endpoint not pointing into a node with inline content (\" + $pos.parent.type.name + \")\");\n }\n}\n/**\nA text selection represents a classical editor selection, with a\nhead (the moving side) and anchor (immobile side), both of which\npoint into textblock nodes. It can be empty (a regular cursor\nposition).\n*/\nclass TextSelection extends Selection {\n /**\n Construct a text selection between the given points.\n */\n constructor($anchor, $head = $anchor) {\n checkTextSelection($anchor);\n checkTextSelection($head);\n super($anchor, $head);\n }\n /**\n Returns a resolved position if this is a cursor selection (an\n empty text selection), and null otherwise.\n */\n get $cursor() { return this.$anchor.pos == this.$head.pos ? this.$head : null; }\n map(doc, mapping) {\n let $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent)\n return Selection.near($head);\n let $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head);\n }\n replace(tr, content = Slice.empty) {\n super.replace(tr, content);\n if (content == Slice.empty) {\n let marks = this.$from.marksAcross(this.$to);\n if (marks)\n tr.ensureMarks(marks);\n }\n }\n eq(other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head;\n }\n getBookmark() {\n return new TextBookmark(this.anchor, this.head);\n }\n toJSON() {\n return { type: \"text\", anchor: this.anchor, head: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n }\n /**\n Create a text selection from non-resolved positions.\n */\n static create(doc, anchor, head = anchor) {\n let $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head));\n }\n /**\n Return a text selection that spans the given positions or, if\n they aren't text positions, find a text selection near them.\n `bias` determines whether the method searches forward (default)\n or backwards (negative number) first. Will fall back to calling\n [`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document\n doesn't contain a valid text position.\n */\n static between($anchor, $head, bias) {\n let dPos = $anchor.pos - $head.pos;\n if (!bias || dPos)\n bias = dPos >= 0 ? 1 : -1;\n if (!$head.parent.inlineContent) {\n let found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found)\n $head = found.$head;\n else\n return Selection.near($head, bias);\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n }\n else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0))\n $anchor = $head;\n }\n }\n return new TextSelection($anchor, $head);\n }\n}\nSelection.jsonID(\"text\", TextSelection);\nclass TextBookmark {\n constructor(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n }\n map(mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head));\n }\n resolve(doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head));\n }\n}\n/**\nA node selection is a selection that points at a single node. All\nnodes marked [selectable](https://prosemirror.net/docs/ref/#model.NodeSpec.selectable) can be the\ntarget of a node selection. In such a selection, `from` and `to`\npoint directly before and after the selected node, `anchor` equals\n`from`, and `head` equals `to`..\n*/\nclass NodeSelection extends Selection {\n /**\n Create a node selection. Does not verify the validity of its\n argument.\n */\n constructor($pos) {\n let node = $pos.nodeAfter;\n let $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n super($pos, $end);\n this.node = node;\n }\n map(doc, mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n let $pos = doc.resolve(pos);\n if (deleted)\n return Selection.near($pos);\n return new NodeSelection($pos);\n }\n content() {\n return new Slice(Fragment.from(this.node), 0, 0);\n }\n eq(other) {\n return other instanceof NodeSelection && other.anchor == this.anchor;\n }\n toJSON() {\n return { type: \"node\", anchor: this.anchor };\n }\n getBookmark() { return new NodeBookmark(this.anchor); }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\")\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n return new NodeSelection(doc.resolve(json.anchor));\n }\n /**\n Create a node selection from non-resolved positions.\n */\n static create(doc, from) {\n return new NodeSelection(doc.resolve(from));\n }\n /**\n Determines whether the given node may be selected as a node\n selection.\n */\n static isSelectable(node) {\n return !node.isText && node.type.spec.selectable !== false;\n }\n}\nNodeSelection.prototype.visible = false;\nSelection.jsonID(\"node\", NodeSelection);\nclass NodeBookmark {\n constructor(anchor) {\n this.anchor = anchor;\n }\n map(mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos);\n }\n resolve(doc) {\n let $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node))\n return new NodeSelection($pos);\n return Selection.near($pos);\n }\n}\n/**\nA selection type that represents selecting the whole document\n(which can not necessarily be expressed with a text selection, when\nthere are for example leaf block nodes at the start or end of the\ndocument).\n*/\nclass AllSelection extends Selection {\n /**\n Create an all-selection over the given document.\n */\n constructor(doc) {\n super(doc.resolve(0), doc.resolve(doc.content.size));\n }\n replace(tr, content = Slice.empty) {\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n let sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection))\n tr.setSelection(sel);\n }\n else {\n super.replace(tr, content);\n }\n }\n toJSON() { return { type: \"all\" }; }\n /**\n @internal\n */\n static fromJSON(doc) { return new AllSelection(doc); }\n map(doc) { return new AllSelection(doc); }\n eq(other) { return other instanceof AllSelection; }\n getBookmark() { return AllBookmark; }\n}\nSelection.jsonID(\"all\", AllSelection);\nconst AllBookmark = {\n map() { return this; },\n resolve(doc) { return new AllSelection(doc); }\n};\n// FIXME we'll need some awareness of text direction when scanning for selections\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text = false) {\n if (node.inlineContent)\n return TextSelection.create(doc, pos);\n for (let i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n let child = node.child(i);\n if (!child.isAtom) {\n let inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner)\n return inner;\n }\n else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0));\n }\n pos += child.nodeSize * dir;\n }\n return null;\n}\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n let last = tr.steps.length - 1;\n if (last < startLen)\n return;\n let step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep))\n return;\n let map = tr.mapping.maps[last], end;\n map.forEach((_from, _to, _newFrom, newTo) => { if (end == null)\n end = newTo; });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nconst UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n/**\nAn editor state transaction, which can be applied to a state to\ncreate an updated state. Use\n[`EditorState.tr`](https://prosemirror.net/docs/ref/#state.EditorState.tr) to create an instance.\n\nTransactions track changes to the document (they are a subclass of\n[`Transform`](https://prosemirror.net/docs/ref/#transform.Transform)), but also other state changes,\nlike selection updates and adjustments of the set of [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks). In addition, you can store\nmetadata properties in a transaction, which are extra pieces of\ninformation that client code or plugins can use to describe what a\ntransaction represents, so that they can update their [own\nstate](https://prosemirror.net/docs/ref/#state.StateField) accordingly.\n\nThe [editor view](https://prosemirror.net/docs/ref/#view.EditorView) uses a few metadata\nproperties: it will attach a property `\"pointer\"` with the value\n`true` to selection transactions directly caused by mouse or touch\ninput, a `\"composition\"` property holding an ID identifying the\ncomposition that caused it to transactions caused by composed DOM\ninput, and a `\"uiEvent\"` property of that may be `\"paste\"`,\n`\"cut\"`, or `\"drop\"`.\n*/\nclass Transaction extends Transform {\n /**\n @internal\n */\n constructor(state) {\n super(state.doc);\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n this.time = Date.now();\n this.curSelection = state.selection;\n this.storedMarks = state.storedMarks;\n }\n /**\n The transaction's current selection. This defaults to the editor\n selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the\n transaction, but can be overwritten with\n [`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).\n */\n get selection() {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection;\n }\n /**\n Update the transaction's current selection. Will determine the\n selection that the editor gets when the transaction is applied.\n */\n setSelection(selection) {\n if (selection.$from.doc != this.doc)\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this;\n }\n /**\n Whether the selection was explicitly updated by this transaction.\n */\n get selectionSet() {\n return (this.updated & UPDATED_SEL) > 0;\n }\n /**\n Set the current stored marks.\n */\n setStoredMarks(marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this;\n }\n /**\n Make sure the current stored marks or, if that is null, the marks\n at the selection, match the given set of marks. Does nothing if\n this is already the case.\n */\n ensureMarks(marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n this.setStoredMarks(marks);\n return this;\n }\n /**\n Add a mark to the set of stored marks.\n */\n addStoredMark(mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Remove a mark or mark type from the set of stored marks.\n */\n removeStoredMark(mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Whether the stored marks were explicitly set for this transaction.\n */\n get storedMarksSet() {\n return (this.updated & UPDATED_MARKS) > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n super.addStep(step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n }\n /**\n Update the timestamp for the transaction.\n */\n setTime(time) {\n this.time = time;\n return this;\n }\n /**\n Replace the current selection with the given slice.\n */\n replaceSelection(slice) {\n this.selection.replace(this, slice);\n return this;\n }\n /**\n Replace the selection with the given node. When `inheritMarks` is\n true and the content is inline, it inherits the marks from the\n place where it is inserted.\n */\n replaceSelectionWith(node, inheritMarks = true) {\n let selection = this.selection;\n if (inheritMarks)\n node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark.none)));\n selection.replaceWith(this, node);\n return this;\n }\n /**\n Delete the selection.\n */\n deleteSelection() {\n this.selection.replace(this);\n return this;\n }\n /**\n Replace the given range, or the selection if no range is given,\n with a text node containing the given string.\n */\n insertText(text, from, to) {\n let schema = this.doc.type.schema;\n if (from == null) {\n if (!text)\n return this.deleteSelection();\n return this.replaceSelectionWith(schema.text(text), true);\n }\n else {\n if (to == null)\n to = from;\n to = to == null ? from : to;\n if (!text)\n return this.deleteRange(from, to);\n let marks = this.storedMarks;\n if (!marks) {\n let $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty)\n this.setSelection(Selection.near(this.selection.$to));\n return this;\n }\n }\n /**\n Store a metadata property in this transaction, keyed either by\n name or by plugin.\n */\n setMeta(key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this;\n }\n /**\n Retrieve a metadata property for a given name or plugin.\n */\n getMeta(key) {\n return this.meta[typeof key == \"string\" ? key : key.key];\n }\n /**\n Returns true if this transaction doesn't contain any metadata,\n and can thus safely be extended.\n */\n get isGeneric() {\n for (let _ in this.meta)\n return false;\n return true;\n }\n /**\n Indicate that the editor should scroll the selection into view\n when updated to the state produced by this transaction.\n */\n scrollIntoView() {\n this.updated |= UPDATED_SCROLL;\n return this;\n }\n /**\n True when this transaction has had `scrollIntoView` called on it.\n */\n get scrolledIntoView() {\n return (this.updated & UPDATED_SCROLL) > 0;\n }\n}\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self);\n}\nclass FieldDesc {\n constructor(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n }\n}\nconst baseFields = [\n new FieldDesc(\"doc\", {\n init(config) { return config.doc || config.schema.topNodeType.createAndFill(); },\n apply(tr) { return tr.doc; }\n }),\n new FieldDesc(\"selection\", {\n init(config, instance) { return config.selection || Selection.atStart(instance.doc); },\n apply(tr) { return tr.selection; }\n }),\n new FieldDesc(\"storedMarks\", {\n init(config) { return config.storedMarks || null; },\n apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null; }\n }),\n new FieldDesc(\"scrollToSelection\", {\n init() { return 0; },\n apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev; }\n })\n];\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nclass Configuration {\n constructor(schema, plugins) {\n this.schema = schema;\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n this.fields = baseFields.slice();\n if (plugins)\n plugins.forEach(plugin => {\n if (this.pluginsByKey[plugin.key])\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\");\n this.plugins.push(plugin);\n this.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n this.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin));\n });\n }\n}\n/**\nThe state of a ProseMirror editor is represented by an object of\nthis type. A state is a persistent data structure—it isn't\nupdated, but rather a new state value is computed from an old one\nusing the [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) method.\n\nA state holds a number of built-in fields, and plugins can\n[define](https://prosemirror.net/docs/ref/#state.PluginSpec.state) additional fields.\n*/\nclass EditorState {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n config) {\n this.config = config;\n }\n /**\n The schema of the state's document.\n */\n get schema() {\n return this.config.schema;\n }\n /**\n The plugins that are active in this state.\n */\n get plugins() {\n return this.config.plugins;\n }\n /**\n Apply the given transaction to produce a new state.\n */\n apply(tr) {\n return this.applyTransaction(tr).state;\n }\n /**\n @internal\n */\n filterTransaction(tr, ignore = -1) {\n for (let i = 0; i < this.config.plugins.length; i++)\n if (i != ignore) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n return false;\n }\n return true;\n }\n /**\n Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that\n returns the precise transactions that were applied (which might\n be influenced by the [transaction\n hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of\n plugins) along with the new state.\n */\n applyTransaction(rootTr) {\n if (!this.filterTransaction(rootTr))\n return { state: this, transactions: [] };\n let trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n let haveNew = false;\n for (let i = 0; i < this.config.plugins.length; i++) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n let n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n let tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (let j = 0; j < this.config.plugins.length; j++)\n seen.push(j < i ? { state: newState, n: trs.length } : { state: this, n: 0 });\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen)\n seen[i] = { state: newState, n: trs.length };\n }\n }\n if (!haveNew)\n return { state: newState, transactions: trs };\n }\n }\n /**\n @internal\n */\n applyInner(tr) {\n if (!tr.before.eq(this.doc))\n throw new RangeError(\"Applying a mismatched transaction\");\n let newInstance = new EditorState(this.config), fields = this.config.fields;\n for (let i = 0; i < fields.length; i++) {\n let field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n return newInstance;\n }\n /**\n Start a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.\n */\n get tr() { return new Transaction(this); }\n /**\n Create a new state.\n */\n static create(config) {\n let $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n let instance = new EditorState($config);\n for (let i = 0; i < $config.fields.length; i++)\n instance[$config.fields[i].name] = $config.fields[i].init(config, instance);\n return instance;\n }\n /**\n Create a new state based on this one, but with an adjusted set\n of active plugins. State fields that exist in both sets of\n plugins are kept unchanged. Those that no longer exist are\n dropped, and those that are new are initialized using their\n [`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new\n configuration object..\n */\n reconfigure(config) {\n let $config = new Configuration(this.schema, config.plugins);\n let fields = $config.fields, instance = new EditorState($config);\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance;\n }\n /**\n Serialize this state to JSON. If you want to serialize the state\n of plugins, pass an object mapping property names to use in the\n resulting JSON object to plugin objects. The argument may also be\n a string or number, in which case it is ignored, to support the\n way `JSON.stringify` calls `toString` methods.\n */\n toJSON(pluginFields) {\n let result = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };\n if (this.storedMarks)\n result.storedMarks = this.storedMarks.map(m => m.toJSON());\n if (pluginFields && typeof pluginFields == 'object')\n for (let prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON)\n result[prop] = state.toJSON.call(plugin, this[plugin.key]);\n }\n return result;\n }\n /**\n Deserialize a JSON representation of a state. `config` should\n have at least a `schema` field, and should contain array of\n plugins to initialize the state with. `pluginFields` can be used\n to deserialize the state of plugins, by associating plugin\n instances with the property names they use in the JSON object.\n */\n static fromJSON(config, json, pluginFields) {\n if (!json)\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n if (!config.schema)\n throw new RangeError(\"Required config field 'schema' missing\");\n let $config = new Configuration(config.schema, config.plugins);\n let instance = new EditorState($config);\n $config.fields.forEach(field => {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n }\n else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n }\n else if (field.name == \"storedMarks\") {\n if (json.storedMarks)\n instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON);\n }\n else {\n if (pluginFields)\n for (let prop in pluginFields) {\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return;\n }\n }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance;\n }\n}\n\nfunction bindProps(obj, self, target) {\n for (let prop in obj) {\n let val = obj[prop];\n if (val instanceof Function)\n val = val.bind(self);\n else if (prop == \"handleDOMEvents\")\n val = bindProps(val, self, {});\n target[prop] = val;\n }\n return target;\n}\n/**\nPlugins bundle functionality that can be added to an editor.\nThey are part of the [editor state](https://prosemirror.net/docs/ref/#state.EditorState) and\nmay influence that state and the view that contains it.\n*/\nclass Plugin {\n /**\n Create a plugin.\n */\n constructor(\n /**\n The plugin's [spec object](https://prosemirror.net/docs/ref/#state.PluginSpec).\n */\n spec) {\n this.spec = spec;\n /**\n The [props](https://prosemirror.net/docs/ref/#view.EditorProps) exported by this plugin.\n */\n this.props = {};\n if (spec.props)\n bindProps(spec.props, this, this.props);\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n }\n /**\n Extract the plugin's state field from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\nconst keys = Object.create(null);\nfunction createKey(name) {\n if (name in keys)\n return name + \"$\" + ++keys[name];\n keys[name] = 0;\n return name + \"$\";\n}\n/**\nA key is used to [tag](https://prosemirror.net/docs/ref/#state.PluginSpec.key) plugins in a way\nthat makes it possible to find them, given an editor state.\nAssigning a key does mean only one plugin of that type can be\nactive in a state.\n*/\nclass PluginKey {\n /**\n Create a plugin key.\n */\n constructor(name = \"key\") { this.key = createKey(name); }\n /**\n Get the active plugin with this key, if any, from an editor\n state.\n */\n get(state) { return state.config.pluginsByKey[this.key]; }\n /**\n Get the plugin's state from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\n\nexport { AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction };\n","import { TextSelection, NodeSelection, AllSelection, Selection } from 'prosemirror-state';\nimport { DOMSerializer, Fragment, Mark, Slice, DOMParser } from 'prosemirror-model';\nimport { dropPoint } from 'prosemirror-transform';\n\nconst domIndex = function (node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n};\nconst parentNode = function (node) {\n let parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent;\n};\nlet reusedRange = null;\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nconst textRange = function (node, from, to) {\n let range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range;\n};\nconst clearReusedRange = function () {\n reusedRange = null;\n};\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nconst isEquivalentPosition = function (node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1));\n};\nconst atomElements = /^(img|br|input|textarea|hr)$/i;\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) ||\n node.contentEditable == \"false\")\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.contentEditable == \"false\")\n return false;\n off = dir < 0 ? nodeSize(node) : 0;\n }\n else {\n return false;\n }\n }\n}\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction textNodeBefore$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset)\n return node;\n if (node.nodeType == 1 && offset > 0) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction textNodeAfter$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset < node.nodeValue.length)\n return node;\n if (node.nodeType == 1 && offset < node.childNodes.length) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset];\n offset = 0;\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction isOnEdge(node, offset, parent) {\n for (let atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent)\n return true;\n let index = domIndex(node);\n node = node.parentNode;\n if (!node)\n return false;\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\nfunction hasBlockDesc(dom) {\n let desc;\n for (let cur = dom; cur; cur = cur.parentNode)\n if (desc = cur.pmViewDesc)\n break;\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom);\n}\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nconst selectionCollapsed = function (domSel) {\n return domSel.focusNode && isEquivalentPosition(domSel.focusNode, domSel.focusOffset, domSel.anchorNode, domSel.anchorOffset);\n};\nfunction keyEvent(keyCode, key) {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event;\n}\nfunction deepActiveElement(doc) {\n let elt = doc.activeElement;\n while (elt && elt.shadowRoot)\n elt = elt.shadowRoot.activeElement;\n return elt;\n}\nfunction caretFromPoint(doc, x, y) {\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n let pos = doc.caretPositionFromPoint(x, y);\n if (pos)\n return { node: pos.offsetNode, offset: pos.offset };\n }\n catch (_) { }\n }\n if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range)\n return { node: range.startContainer, offset: range.startOffset };\n }\n}\n\nconst nav = typeof navigator != \"undefined\" ? navigator : null;\nconst doc = typeof document != \"undefined\" ? document : null;\nconst agent = (nav && nav.userAgent) || \"\";\nconst ie_edge = /Edge\\/(\\d+)/.exec(agent);\nconst ie_upto10 = /MSIE \\d/.exec(agent);\nconst ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(agent);\nconst ie = !!(ie_upto10 || ie_11up || ie_edge);\nconst ie_version = ie_upto10 ? document.documentMode : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0;\nconst gecko = !ie && /gecko\\/(\\d+)/i.test(agent);\ngecko && +(/Firefox\\/(\\d+)/.exec(agent) || [0, 0])[1];\nconst _chrome = !ie && /Chrome\\/(\\d+)/.exec(agent);\nconst chrome = !!_chrome;\nconst chrome_version = _chrome ? +_chrome[1] : 0;\nconst safari = !ie && !!nav && /Apple Computer/.test(nav.vendor);\n// Is true for both iOS and iPadOS for convenience\nconst ios = safari && (/Mobile\\/\\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);\nconst mac = ios || (nav ? /Mac/.test(nav.platform) : false);\nconst windows = nav ? /Win/.test(nav.platform) : false;\nconst android = /Android \\d/.test(agent);\nconst webkit = !!doc && \"webkitFontSmoothing\" in doc.documentElement.style;\nconst webkit_version = webkit ? +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;\n\nfunction windowRect(doc) {\n let vp = doc.defaultView && doc.defaultView.visualViewport;\n if (vp)\n return {\n left: 0, right: vp.width,\n top: 0, bottom: vp.height\n };\n return { left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight };\n}\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side];\n}\nfunction clientRect(node) {\n let rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n let scaleX = (rect.width / node.offsetWidth) || 1;\n let scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return { left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY };\n}\nfunction scrollRectIntoView(view, rect, startDOM) {\n let scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n let doc = view.dom.ownerDocument;\n for (let parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent)\n break;\n if (parent.nodeType != 1)\n continue;\n let elt = parent;\n let atTop = elt == doc.body;\n let bounding = atTop ? windowRect(doc) : clientRect(elt);\n let moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\"));\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n moveY = rect.bottom - rect.top > bounding.bottom - bounding.top\n ? rect.top + getSide(scrollMargin, \"top\") - bounding.top\n : rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\");\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\"));\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\");\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n }\n else {\n let startX = elt.scrollLeft, startY = elt.scrollTop;\n if (moveY)\n elt.scrollTop += moveY;\n if (moveX)\n elt.scrollLeft += moveX;\n let dX = elt.scrollLeft - startX, dY = elt.scrollTop - startY;\n rect = { left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY };\n }\n }\n if (atTop || /^(fixed|sticky)$/.test(getComputedStyle(parent).position))\n break;\n }\n}\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n let rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n let refDOM, refTop;\n for (let x = (rect.left + rect.right) / 2, y = startY + 1; y < Math.min(innerHeight, rect.bottom); y += 5) {\n let dom = view.root.elementFromPoint(x, y);\n if (!dom || dom == view.dom || !view.dom.contains(dom))\n continue;\n let localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break;\n }\n }\n return { refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom) };\n}\nfunction scrollStack(dom) {\n let stack = [], doc = dom.ownerDocument;\n for (let cur = dom; cur; cur = parentNode(cur)) {\n stack.push({ dom: cur, top: cur.scrollTop, left: cur.scrollLeft });\n if (dom == doc)\n break;\n }\n return stack;\n}\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos({ refDOM, refTop, stack }) {\n let newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\nfunction restoreScrollStack(stack, dTop) {\n for (let i = 0; i < stack.length; i++) {\n let { dom, top, left } = stack[i];\n if (dom.scrollTop != top + dTop)\n dom.scrollTop = top + dTop;\n if (dom.scrollLeft != left)\n dom.scrollLeft = left;\n }\n}\nlet preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\nfunction findOffsetInNode(node, coords) {\n let closest, dxClosest = 2e8, coordsClosest, offset = 0;\n let rowBot = coords.top, rowTop = coords.top;\n let firstBelow, coordsBelow;\n for (let child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n let rects;\n if (child.nodeType == 1)\n rects = child.getClientRects();\n else if (child.nodeType == 3)\n rects = textRange(child).getClientRects();\n else\n continue;\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n let dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {\n left: rect.right < coords.left ? rect.right : rect.left,\n top: coords.top\n } : coords;\n if (child.nodeType == 1 && dx)\n offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0);\n continue;\n }\n }\n else if (rect.top > coords.top && !firstBelow && rect.left <= coords.left && rect.right >= coords.left) {\n firstBelow = child;\n coordsBelow = { left: Math.max(rect.left, Math.min(rect.right, coords.left)), top: rect.top };\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n offset = childIndex + 1;\n }\n }\n if (!closest && firstBelow) {\n closest = firstBelow;\n coordsClosest = coordsBelow;\n dxClosest = 0;\n }\n if (closest && closest.nodeType == 3)\n return findOffsetInText(closest, coordsClosest);\n if (!closest || (dxClosest && closest.nodeType == 1))\n return { node, offset };\n return findOffsetInNode(closest, coordsClosest);\n}\nfunction findOffsetInText(node, coords) {\n let len = node.nodeValue.length;\n let range = document.createRange();\n for (let i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n let rect = singleRect(range, 1);\n if (rect.top == rect.bottom)\n continue;\n if (inRect(coords, rect))\n return { node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0) };\n }\n return { node, offset: 0 };\n}\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1 &&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1;\n}\nfunction targetKludge(dom, coords) {\n let parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n return parent;\n return dom;\n}\nfunction posFromElement(view, elt, coords) {\n let { node, offset } = findOffsetInNode(elt, coords), bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n let rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias);\n}\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n let outsideBlock = -1;\n for (let cur = node, sawBlock = false;;) {\n if (cur == view.dom)\n break;\n let desc = view.docView.nearestDesc(cur, true);\n if (!desc)\n return null;\n if (desc.dom.nodeType == 1 && (desc.node.isBlock && desc.parent || !desc.contentDOM)) {\n let rect = desc.dom.getBoundingClientRect();\n if (desc.node.isBlock && desc.parent) {\n // Only apply the horizontal test to the innermost block. Vertical for any parent.\n if (!sawBlock && rect.left > coords.left || rect.top > coords.top)\n outsideBlock = desc.posBefore;\n else if (!sawBlock && rect.right < coords.left || rect.bottom < coords.top)\n outsideBlock = desc.posAfter;\n sawBlock = true;\n }\n if (!desc.contentDOM && outsideBlock < 0 && !desc.node.isText) {\n // If we are inside a leaf, return the side of the leaf closer to the coords\n let before = desc.node.isBlock ? coords.top < (rect.top + rect.bottom) / 2\n : coords.left < (rect.left + rect.right) / 2;\n return before ? desc.posBefore : desc.posAfter;\n }\n }\n cur = desc.dom.parentNode;\n }\n return outsideBlock > -1 ? outsideBlock : view.docView.posFromDOM(node, offset, -1);\n}\nfunction elementFromPoint(element, coords, box) {\n let len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (let startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n let child = element.childNodes[i];\n if (child.nodeType == 1) {\n let rects = child.getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (inRect(coords, rect))\n return elementFromPoint(child, coords, rect);\n }\n }\n if ((i = (i + 1) % len) == startI)\n break;\n }\n }\n return element;\n}\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n let doc = view.dom.ownerDocument, node, offset = 0;\n let caret = caretFromPoint(doc, coords.left, coords.top);\n if (caret)\n ({ node, offset } = caret);\n let elt = (view.root.elementFromPoint ? view.root : doc)\n .elementFromPoint(coords.left, coords.top);\n let pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n let box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box))\n return null;\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt)\n return null;\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (safari) {\n for (let p = elt; node && p; p = parentNode(p))\n if (p.draggable)\n node = undefined;\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n let next = node.childNodes[offset], box;\n if (next.nodeName == \"IMG\" && (box = next.getBoundingClientRect()).right <= coords.left &&\n box.bottom > coords.top)\n offset++;\n }\n }\n let prev;\n // When clicking above the right side of an uneditable node, Chrome will report a cursor position after that node.\n if (webkit && offset && node.nodeType == 1 && (prev = node.childNodes[offset - 1]).nodeType == 1 &&\n prev.contentEditable == \"false\" && prev.getBoundingClientRect().top >= coords.top)\n offset--;\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n pos = view.state.doc.content.size;\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n pos = posFromCaret(view, node, offset, coords);\n }\n if (pos == null)\n pos = posFromElement(view, elt, coords);\n let desc = view.docView.nearestDesc(elt, true);\n return { pos, inside: desc ? desc.posAtStart - desc.border : -1 };\n}\nfunction nonZero(rect) {\n return rect.top < rect.bottom || rect.left < rect.right;\n}\nfunction singleRect(target, bias) {\n let rects = target.getClientRects();\n if (rects.length) {\n let first = rects[bias < 0 ? 0 : rects.length - 1];\n if (nonZero(first))\n return first;\n }\n return Array.prototype.find.call(rects, nonZero) || target.getBoundingClientRect();\n}\nconst BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n let { node, offset, atom } = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n let supportEmptyRange = webkit || gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n let rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n let rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n let rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n return flattenV(rectAfter, rectAfter.left < rectBefore.left);\n }\n }\n return rect;\n }\n else {\n let from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) {\n to++;\n takeSide = -1;\n }\n else if (side >= 0 && offset == node.nodeValue.length) {\n from--;\n takeSide = 1;\n }\n else if (side < 0) {\n from--;\n }\n else {\n to++;\n }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0);\n }\n }\n let $dom = view.state.doc.resolve(pos - (atom || 0));\n // Return a horizontal line in block context\n if (!$dom.parent.inlineContent) {\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n if (before.nodeType == 1)\n return flattenH(before.getBoundingClientRect(), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n if (after.nodeType == 1)\n return flattenH(after.getBoundingClientRect(), true);\n }\n return flattenH(node.getBoundingClientRect(), side >= 0);\n }\n // Inline, not in text node (this is not Bidi-safe)\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n let target = before.nodeType == 3 ? textRange(before, nodeSize(before) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before.nodeType == 1 && (before.nodeName != \"BR\" || !before.nextSibling) ? before : null;\n if (target)\n return flattenV(singleRect(target, 1), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n while (after.pmViewDesc && after.pmViewDesc.ignoreForCoords)\n after = after.nextSibling;\n let target = !after ? null : after.nodeType == 3 ? textRange(after, 0, (supportEmptyRange ? 0 : 1))\n : after.nodeType == 1 ? after : null;\n if (target)\n return flattenV(singleRect(target, -1), true);\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0);\n}\nfunction flattenV(rect, left) {\n if (rect.width == 0)\n return rect;\n let x = left ? rect.left : rect.right;\n return { top: rect.top, bottom: rect.bottom, left: x, right: x };\n}\nfunction flattenH(rect, top) {\n if (rect.height == 0)\n return rect;\n let y = top ? rect.top : rect.bottom;\n return { top: y, bottom: y, left: rect.left, right: rect.right };\n}\nfunction withFlushedState(view, state, f) {\n let viewState = view.state, active = view.root.activeElement;\n if (viewState != state)\n view.updateState(state);\n if (active != view.dom)\n view.focus();\n try {\n return f();\n }\n finally {\n if (viewState != state)\n view.updateState(viewState);\n if (active != view.dom && active)\n active.focus();\n }\n}\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n let sel = state.selection;\n let $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, () => {\n let { node: dom } = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n for (;;) {\n let nearest = view.docView.nearestDesc(dom, true);\n if (!nearest)\n break;\n if (nearest.node.isBlock) {\n dom = nearest.contentDOM || nearest.dom;\n break;\n }\n dom = nearest.dom.parentNode;\n }\n let coords = coordsAtPos(view, $pos.pos, 1);\n for (let child = dom.firstChild; child; child = child.nextSibling) {\n let boxes;\n if (child.nodeType == 1)\n boxes = child.getClientRects();\n else if (child.nodeType == 3)\n boxes = textRange(child, 0, child.nodeValue.length).getClientRects();\n else\n continue;\n for (let i = 0; i < boxes.length; i++) {\n let box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n return false;\n }\n }\n return true;\n });\n}\nconst maybeRTL = /[\\u0590-\\u08ac]/;\nfunction endOfTextblockHorizontal(view, state, dir) {\n let { $head } = state.selection;\n if (!$head.parent.isTextblock)\n return false;\n let offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n let sel = view.domSelection();\n if (!sel)\n return $head.pos == $head.start() || $head.pos == $head.end();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n return dir == \"left\" || dir == \"backward\" ? atStart : atEnd;\n return withFlushedState(view, state, () => {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n let { focusNode: oldNode, focusOffset: oldOff, anchorNode, anchorOffset } = view.domSelectionRange();\n let oldBidiLevel = sel.caretBidiLevel // Only for Firefox\n ;\n sel.modify(\"move\", dir, \"character\");\n let parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n let { focusNode: newNode, focusOffset: newOff } = view.domSelectionRange();\n let result = newNode && !parentDOM.contains(newNode.nodeType == 1 ? newNode : newNode.parentNode) ||\n (oldNode == newNode && oldOff == newOff);\n // Restore the previous selection\n try {\n sel.collapse(anchorNode, anchorOffset);\n if (oldNode && (oldNode != anchorNode || oldOff != anchorOffset) && sel.extend)\n sel.extend(oldNode, oldOff);\n }\n catch (_) { }\n if (oldBidiLevel != null)\n sel.caretBidiLevel = oldBidiLevel;\n return result;\n });\n}\nlet cachedState = null;\nlet cachedDir = null;\nlet cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir)\n return cachedResult;\n cachedState = state;\n cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir);\n}\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\nconst NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nclass ViewDesc {\n constructor(parent, children, dom, \n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n }\n // Used to check whether a given description corresponds to a\n // widget/mark/node.\n matchesWidget(widget) { return false; }\n matchesMark(mark) { return false; }\n matchesNode(node, outerDeco, innerDeco) { return false; }\n matchesHack(nodeName) { return false; }\n // When parsing in-editor content (in domchange.js), we allow\n // descriptions to determine the parse rules that should be used to\n // parse them.\n parseRule() { return null; }\n // Used by the editor's event handler to ignore events that come\n // from certain descs.\n stopEvent(event) { return false; }\n // The size of the content represented by this desc.\n get size() {\n let size = 0;\n for (let i = 0; i < this.children.length; i++)\n size += this.children[i].size;\n return size;\n }\n // For block nodes, this represents the space taken up by their\n // start/end tokens.\n get border() { return 0; }\n destroy() {\n this.parent = undefined;\n if (this.dom.pmViewDesc == this)\n this.dom.pmViewDesc = undefined;\n for (let i = 0; i < this.children.length; i++)\n this.children[i].destroy();\n }\n posBeforeChild(child) {\n for (let i = 0, pos = this.posAtStart;; i++) {\n let cur = this.children[i];\n if (cur == child)\n return pos;\n pos += cur.size;\n }\n }\n get posBefore() {\n return this.parent.posBeforeChild(this);\n }\n get posAtStart() {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n }\n get posAfter() {\n return this.posBefore + this.size;\n }\n get posAtEnd() {\n return this.posAtStart + this.size - 2 * this.border;\n }\n localPosFromDOM(dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n let domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this))\n domBefore = domBefore.previousSibling;\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;\n }\n else {\n let domAfter, desc;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc = domAfter.pmViewDesc) && desc.parent == this))\n domAfter = domAfter.nextSibling;\n return domAfter ? this.posBeforeChild(desc) : this.posAtEnd;\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n let atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n }\n else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n }\n else if (this.dom.firstChild) {\n if (offset == 0)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = false;\n break;\n }\n if (search.previousSibling)\n break;\n }\n if (atEnd == null && offset == dom.childNodes.length)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = true;\n break;\n }\n if (search.nextSibling)\n break;\n }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;\n }\n nearestDesc(dom, onlyNodes = false) {\n for (let first = true, cur = dom; cur; cur = cur.parentNode) {\n let desc = this.getDesc(cur), nodeDOM;\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && (nodeDOM = desc.nodeDOM) &&\n !(nodeDOM.nodeType == 1 ? nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : nodeDOM == dom))\n first = false;\n else\n return desc;\n }\n }\n }\n getDesc(dom) {\n let desc = dom.pmViewDesc;\n for (let cur = desc; cur; cur = cur.parent)\n if (cur == this)\n return desc;\n }\n posFromDOM(dom, offset, bias) {\n for (let scan = dom; scan; scan = scan.parentNode) {\n let desc = this.getDesc(scan);\n if (desc)\n return desc.localPosFromDOM(dom, offset, bias);\n }\n return -1;\n }\n // Find the desc for the node after the given pos, if any. (When a\n // parent node overrode rendering, there might not be one.)\n descAt(pos) {\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length)\n child = child.children[0];\n return child;\n }\n if (pos < end)\n return child.descAt(pos - offset - child.border);\n offset = end;\n }\n }\n domFromPos(pos, side) {\n if (!this.contentDOM)\n return { node: this.dom, offset: 0, atom: pos + 1 };\n // First find the position in the child array\n let i = 0, offset = 0;\n for (let curPos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) {\n offset = pos - curPos;\n break;\n }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset)\n return this.children[i].domFromPos(offset - this.children[i].border, side);\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (let prev; i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.side >= 0; i--) { }\n // Scan towards the first useable node\n if (side <= 0) {\n let prev, enter = true;\n for (;; i--, enter = false) {\n prev = i ? this.children[i - 1] : null;\n if (!prev || prev.dom.parentNode == this.contentDOM)\n break;\n }\n if (prev && side && enter && !prev.border && !prev.domAtom)\n return prev.domFromPos(prev.size, side);\n return { node: this.contentDOM, offset: prev ? domIndex(prev.dom) + 1 : 0 };\n }\n else {\n let next, enter = true;\n for (;; i++, enter = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM)\n break;\n }\n if (next && enter && !next.border && !next.domAtom)\n return next.domFromPos(0, side);\n return { node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length };\n }\n }\n // Used to find a DOM range in a single parent for a given changed\n // range.\n parseRange(from, to, base = 0) {\n if (this.children.length == 0)\n return { node: this.contentDOM, from, to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length };\n let fromOffset = -1, toOffset = -1;\n for (let offset = base, i = 0;; i++) {\n let child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n let childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n return child.parseRange(from, to, childBase);\n from = offset;\n for (let j = i; j > 0; j--) {\n let prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break;\n }\n from -= prev.size;\n }\n if (fromOffset == -1)\n fromOffset = 0;\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (let j = i + 1; j < this.children.length; j++) {\n let next = this.children[j];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break;\n }\n to += next.size;\n }\n if (toOffset == -1)\n toOffset = this.contentDOM.childNodes.length;\n break;\n }\n offset = end;\n }\n return { node: this.contentDOM, from, to, fromOffset, toOffset };\n }\n emptyChildAt(side) {\n if (this.border || !this.contentDOM || !this.children.length)\n return false;\n let child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side);\n }\n domAfterPos(pos) {\n let { node, offset } = this.domFromPos(pos, 0);\n if (node.nodeType != 1 || offset == node.childNodes.length)\n throw new RangeError(\"No node after pos \" + pos);\n return node.childNodes[offset];\n }\n // View descs are responsible for setting any selection that falls\n // entirely inside of them, so that custom implementations can do\n // custom things with the selection. Note that this falls apart when\n // a selection starts in such a node and ends in another, in which\n // case we just use whatever domFromPos produces as a best effort.\n setSelection(anchor, head, root, force = false) {\n // If the selection falls entirely in a child, give it to that child\n let from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n return child.setSelection(anchor - offset - child.border, head - offset - child.border, root, force);\n offset = end;\n }\n let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n let domSel = root.getSelection();\n let brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((gecko || safari) && anchor == head) {\n let { node, offset } = anchorDOM;\n if (node.nodeType == 3) {\n brKludge = !!(offset && node.nodeValue[offset - 1] == \"\\n\");\n // Issue #1128\n if (brKludge && offset == node.nodeValue.length) {\n for (let scan = node, after; scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n anchorDOM = headDOM = { node: after.parentNode, offset: domIndex(after) + 1 };\n break;\n }\n let desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock)\n break;\n }\n }\n }\n else {\n let prev = node.childNodes[offset - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {\n let after = domSel.focusNode.childNodes[domSel.focusOffset];\n if (after && after.contentEditable == \"false\")\n force = true;\n }\n if (!(force || brKludge && safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))\n return;\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n let domSelExtended = false;\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head)\n domSel.extend(headDOM.node, headDOM.offset);\n domSelExtended = true;\n }\n catch (_) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n // Similarly, this could crash on Safari if the editor is hidden, and\n // there was no selection.\n }\n }\n if (!domSelExtended) {\n if (anchor > head) {\n let tmp = anchorDOM;\n anchorDOM = headDOM;\n headDOM = tmp;\n }\n let range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n }\n ignoreMutation(mutation) {\n return !this.contentDOM && mutation.type != \"selection\";\n }\n get contentLost() {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n }\n // Remove a subtree of the element tree that has been touched\n // by a DOM change, so that the next update will redraw it.\n markDirty(from, to) {\n for (let offset = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n let startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM))\n child.dirty = NODE_DIRTY;\n else\n child.markDirty(from - startInside, to - startInside);\n return;\n }\n else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n }\n markParentsDirty() {\n let level = 1;\n for (let node = this.parent; node; node = node.parent, level++) {\n let dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty)\n node.dirty = dirty;\n }\n }\n get domAtom() { return false; }\n get ignoreForCoords() { return false; }\n isText(text) { return false; }\n}\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nclass WidgetViewDesc extends ViewDesc {\n constructor(parent, widget, view, pos) {\n let self, dom = widget.type.toDOM;\n if (typeof dom == \"function\")\n dom = dom(view, () => {\n if (!self)\n return pos;\n if (self.parent)\n return self.parent.posBeforeChild(self);\n });\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n let wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = \"false\";\n dom.classList.add(\"ProseMirror-widget\");\n }\n super(parent, [], dom, null);\n this.widget = widget;\n this.widget = widget;\n self = this;\n }\n matchesWidget(widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);\n }\n parseRule() { return { ignore: true }; }\n stopEvent(event) {\n let stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false;\n }\n ignoreMutation(mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection;\n }\n destroy() {\n this.widget.type.destroy(this.dom);\n super.destroy();\n }\n get domAtom() { return true; }\n get side() { return this.widget.type.side; }\n}\nclass CompositionViewDesc extends ViewDesc {\n constructor(parent, dom, textDOM, text) {\n super(parent, [], dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n get size() { return this.text.length; }\n localPosFromDOM(dom, offset) {\n if (dom != this.textDOM)\n return this.posAtStart + (offset ? this.size : 0);\n return this.posAtStart + offset;\n }\n domFromPos(pos) {\n return { node: this.textDOM, offset: pos };\n }\n ignoreMutation(mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue;\n }\n}\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nclass MarkViewDesc extends ViewDesc {\n constructor(parent, mark, dom, contentDOM) {\n super(parent, [], dom, contentDOM);\n this.mark = mark;\n }\n static create(parent, mark, inline, view) {\n let custom = view.nodeViews[mark.type.name];\n let spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);\n }\n parseRule() {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView)\n return null;\n return { mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM };\n }\n matchesMark(mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark); }\n markDirty(from, to) {\n super.markDirty(from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n let parent = this.parent;\n while (!parent.node)\n parent = parent.parent;\n if (parent.dirty < this.dirty)\n parent.dirty = this.dirty;\n this.dirty = NOT_DIRTY;\n }\n }\n slice(from, to, view) {\n let copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n let nodes = this.children, size = this.size;\n if (to < size)\n nodes = replaceNodes(nodes, to, size, view);\n if (from > 0)\n nodes = replaceNodes(nodes, 0, from, view);\n for (let i = 0; i < nodes.length; i++)\n nodes[i].parent = copy;\n copy.children = nodes;\n return copy;\n }\n}\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nclass NodeViewDesc extends ViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n super(parent, [], dom, contentDOM);\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n this.nodeDOM = nodeDOM;\n }\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n static create(parent, node, outerDeco, innerDeco, view, pos) {\n let custom = view.nodeViews[node.type.name], descObj;\n let spec = custom && custom(node, view, () => {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj)\n return pos;\n if (descObj.parent)\n return descObj.parent.posBeforeChild(descObj);\n }, outerDeco, innerDeco);\n let dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom)\n dom = document.createTextNode(node.text);\n else if (dom.nodeType != 3)\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n }\n else if (!dom) {\n let spec = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node), null, node.attrs);\n ({ dom, contentDOM } = spec);\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by
\n if (!dom.hasAttribute(\"contenteditable\"))\n dom.contentEditable = \"false\";\n if (node.type.spec.draggable)\n dom.draggable = true;\n }\n let nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n if (spec)\n return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, spec, view, pos + 1);\n else if (node.isText)\n return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view);\n else\n return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, view, pos + 1);\n }\n parseRule() {\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView)\n return null;\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n let rule = { node: this.node.type.name, attrs: this.node.attrs };\n if (this.node.type.whitespace == \"pre\")\n rule.preserveWhitespace = \"full\";\n if (!this.contentDOM) {\n rule.getContent = () => this.node.content;\n }\n else if (!this.contentLost) {\n rule.contentElement = this.contentDOM;\n }\n else {\n // Chrome likes to randomly recreate parent nodes when\n // backspacing things. When that happens, this tries to find the\n // new parent.\n for (let i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i];\n if (this.dom.contains(child.dom.parentNode)) {\n rule.contentElement = child.dom.parentNode;\n break;\n }\n }\n if (!rule.contentElement)\n rule.getContent = () => Fragment.empty;\n }\n return rule;\n }\n matchesNode(node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco);\n }\n get size() { return this.node.nodeSize; }\n get border() { return this.node.isLeaf ? 0 : 1; }\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n updateChildren(view, pos) {\n let inline = this.node.inlineContent, off = pos;\n let composition = view.composing ? this.localCompositionInfo(view, pos) : null;\n let localComposition = composition && composition.pos > -1 ? composition : null;\n let compositionInChild = composition && composition.pos < 0;\n let updater = new ViewTreeUpdater(this, localComposition && localComposition.node, view);\n iterDeco(this.node, this.innerDeco, (widget, i, insideNode) => {\n if (widget.spec.marks)\n updater.syncToMarks(widget.spec.marks, inline, view);\n else if (widget.type.side >= 0 && !insideNode)\n updater.syncToMarks(i == this.node.childCount ? Mark.none : this.node.child(i).marks, inline, view);\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, (child, outerDeco, innerDeco, i) => {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view);\n // Try several strategies for drawing this node\n let compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ;\n else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ;\n else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i, off)) ;\n else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks([], inline, view);\n if (this.node.isTextblock)\n updater.addTextblockHacks();\n updater.destroyRest();\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition)\n this.protectLocalComposition(view, localComposition);\n renderDescs(this.contentDOM, this.children, view);\n if (ios)\n iosHacks(this.dom);\n }\n }\n localCompositionInfo(view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n let { from, to } = view.state.selection;\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size)\n return null;\n let textNode = view.input.compositionNode;\n if (!textNode || !this.dom.contains(textNode.parentNode))\n return null;\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n let text = textNode.nodeValue;\n let textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : { node: textNode, pos: textPos, text };\n }\n else {\n return { node: textNode, pos: -1, text: \"\" };\n }\n }\n protectLocalComposition(view, { node, pos, text }) {\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node))\n return;\n // Create a composition view for the orphaned nodes\n let topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM)\n break;\n while (topNode.previousSibling)\n topNode.parentNode.removeChild(topNode.previousSibling);\n while (topNode.nextSibling)\n topNode.parentNode.removeChild(topNode.nextSibling);\n if (topNode.pmViewDesc)\n topNode.pmViewDesc = undefined;\n }\n let desc = new CompositionViewDesc(this, topNode, node, text);\n view.input.compositionNodes.push(desc);\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n }\n // If this desc must be updated to match the given node decoration,\n // do so and return true.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node))\n return false;\n this.updateInner(node, outerDeco, innerDeco, view);\n return true;\n }\n updateInner(node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM)\n this.updateChildren(view, this.posAtStart);\n this.dirty = NOT_DIRTY;\n }\n updateOuterDeco(outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco))\n return;\n let needsWrap = this.nodeDOM.nodeType != 1;\n let oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM, computeOuterDeco(this.outerDeco, this.node, needsWrap), computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = undefined;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n }\n // Mark this node as being the selected node.\n selectNode() {\n if (this.nodeDOM.nodeType == 1)\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.draggable = true;\n }\n // Remove selected node marking from this node.\n deselectNode() {\n if (this.nodeDOM.nodeType == 1) {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.removeAttribute(\"draggable\");\n }\n }\n get domAtom() { return this.node.isAtom; }\n}\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n let docView = new NodeViewDesc(undefined, doc, outerDeco, innerDeco, dom, dom, dom, view, 0);\n if (docView.contentDOM)\n docView.updateChildren(view, 0);\n return docView;\n}\nclass TextViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n super(parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view, 0);\n }\n parseRule() {\n let skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco)\n skip = skip.parentNode;\n return { skip: (skip || true) };\n }\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node))\n return false;\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM)\n view.trackWrites = null;\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true;\n }\n inParent() {\n let parentDOM = this.parent.contentDOM;\n for (let n = this.nodeDOM; n; n = n.parentNode)\n if (n == parentDOM)\n return true;\n return false;\n }\n domFromPos(pos) {\n return { node: this.nodeDOM, offset: pos };\n }\n localPosFromDOM(dom, offset, bias) {\n if (dom == this.nodeDOM)\n return this.posAtStart + Math.min(offset, this.node.text.length);\n return super.localPosFromDOM(dom, offset, bias);\n }\n ignoreMutation(mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\";\n }\n slice(from, to, view) {\n let node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view);\n }\n markDirty(from, to) {\n super.markDirty(from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n this.dirty = NODE_DIRTY;\n }\n get domAtom() { return false; }\n isText(text) { return this.node.text == text; }\n}\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nclass TrailingHackViewDesc extends ViewDesc {\n parseRule() { return { ignore: true }; }\n matchesHack(nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName; }\n get domAtom() { return true; }\n get ignoreForCoords() { return this.dom.nodeName == \"IMG\"; }\n}\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nclass CustomNodeViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n super(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY)\n return false;\n if (this.spec.update) {\n let result = this.spec.update(node, outerDeco, innerDeco);\n if (result)\n this.updateInner(node, outerDeco, innerDeco, view);\n return result;\n }\n else if (!this.contentDOM && !node.isLeaf) {\n return false;\n }\n else {\n return super.update(node, outerDeco, innerDeco, view);\n }\n }\n selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : super.selectNode();\n }\n deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();\n }\n setSelection(anchor, head, root, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, root)\n : super.setSelection(anchor, head, root, force);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n stopEvent(event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n}\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n let dom = parentDOM.firstChild, written = false;\n for (let i = 0; i < descs.length; i++) {\n let desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) {\n dom = rm(dom);\n written = true;\n }\n dom = dom.nextSibling;\n }\n else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n let pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) {\n dom = rm(dom);\n written = true;\n }\n if (written && view.trackWrites == parentDOM)\n view.trackWrites = null;\n}\nconst OuterDecoLevel = function (nodeName) {\n if (nodeName)\n this.nodeName = nodeName;\n};\nOuterDecoLevel.prototype = Object.create(null);\nconst noDeco = [new OuterDecoLevel];\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0)\n return noDeco;\n let top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n for (let i = 0; i < outerDeco.length; i++) {\n let attrs = outerDeco[i].type.attrs;\n if (!attrs)\n continue;\n if (attrs.nodeName)\n result.push(top = new OuterDecoLevel(attrs.nodeName));\n for (let name in attrs) {\n let val = attrs[name];\n if (val == null)\n continue;\n if (needsWrap && result.length == 1)\n result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\"));\n if (name == \"class\")\n top.class = (top.class ? top.class + \" \" : \"\") + val;\n else if (name == \"style\")\n top.style = (top.style ? top.style + \";\" : \"\") + val;\n else if (name != \"nodeName\")\n top[name] = val;\n }\n }\n return result;\n}\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco)\n return nodeDOM;\n let curDOM = nodeDOM;\n for (let i = 0; i < curComputed.length; i++) {\n let deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n let parent;\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.nodeName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n }\n else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM;\n}\nfunction patchAttributes(dom, prev, cur) {\n for (let name in prev)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n dom.removeAttribute(name);\n for (let name in cur)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && cur[name] != prev[name])\n dom.setAttribute(name, cur[name]);\n if (prev.class != cur.class) {\n let prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : [];\n let curList = cur.class ? cur.class.split(\" \").filter(Boolean) : [];\n for (let i = 0; i < prevList.length; i++)\n if (curList.indexOf(prevList[i]) == -1)\n dom.classList.remove(prevList[i]);\n for (let i = 0; i < curList.length; i++)\n if (prevList.indexOf(curList[i]) == -1)\n dom.classList.add(curList[i]);\n if (dom.classList.length == 0)\n dom.removeAttribute(\"class\");\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n let prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n dom.style.removeProperty(m[1]);\n }\n if (cur.style)\n dom.style.cssText += cur.style;\n }\n}\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1));\n}\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].type.eq(b[i].type))\n return false;\n return true;\n}\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nclass ViewTreeUpdater {\n constructor(top, lock, view) {\n this.lock = lock;\n this.view = view;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n this.top = top;\n this.preMatch = preMatch(top.node.content, top);\n }\n // Destroy and remove the children between the given indices in\n // `this.top`.\n destroyBetween(start, end) {\n if (start == end)\n return;\n for (let i = start; i < end; i++)\n this.top.children[i].destroy();\n this.top.children.splice(start, end - start);\n this.changed = true;\n }\n // Destroy all remaining children in `this.top`.\n destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n }\n // Sync the current stack of mark descs with the given array of\n // marks, reusing existing mark descs when possible.\n syncToMarks(marks, inline, view) {\n let keep = 0, depth = this.stack.length >> 1;\n let maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1])\n .matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n keep++;\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n let found = -1;\n for (let i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n let next = this.top.children[i];\n if (next.matchesMark(marks[depth]) && !this.isLocked(next.dom)) {\n found = i;\n break;\n }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n }\n else {\n let markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n }\n // Try to find a node desc matching the given data. Skip over it and\n // return true when successful.\n findNodeMatch(node, outerDeco, innerDeco, index) {\n let found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n }\n else {\n for (let i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n let child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break;\n }\n }\n }\n if (found < 0)\n return false;\n this.destroyBetween(this.index, found);\n this.index++;\n return true;\n }\n updateNodeAt(node, outerDeco, innerDeco, index, view) {\n let child = this.top.children[index];\n if (child.dirty == NODE_DIRTY && child.dom == child.contentDOM)\n child.dirty = CONTENT_DIRTY;\n if (!child.update(node, outerDeco, innerDeco, view))\n return false;\n this.destroyBetween(this.index, index);\n this.index++;\n return true;\n }\n findIndexWithChild(domNode) {\n for (;;) {\n let parent = domNode.parentNode;\n if (!parent)\n return -1;\n if (parent == this.top.contentDOM) {\n let desc = domNode.pmViewDesc;\n if (desc)\n for (let i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc)\n return i;\n }\n return -1;\n }\n domNode = parent;\n }\n }\n // Try to update the next node, if any, to the given data. Checks\n // pre-matches to avoid overwriting nodes that could still be used.\n updateNextNode(node, outerDeco, innerDeco, view, index, pos) {\n for (let i = this.index; i < this.top.children.length; i++) {\n let next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n let preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index)\n return false;\n let nextDOM = next.dom, updated;\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n let locked = this.isLocked(nextDOM) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM)\n this.changed = true;\n this.index++;\n return true;\n }\n else if (!locked && (updated = this.recreateWrapper(next, node, outerDeco, innerDeco, view, pos))) {\n this.top.children[this.index] = updated;\n if (updated.contentDOM) {\n updated.dirty = CONTENT_DIRTY;\n updated.updateChildren(view, pos + 1);\n updated.dirty = NOT_DIRTY;\n }\n this.changed = true;\n this.index++;\n return true;\n }\n break;\n }\n }\n return false;\n }\n // When a node with content is replaced by a different node with\n // identical content, move over its children.\n recreateWrapper(next, node, outerDeco, innerDeco, view, pos) {\n if (next.dirty || node.isAtom || !next.children.length ||\n !next.node.content.eq(node.content))\n return null;\n let wrapper = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (wrapper.contentDOM) {\n wrapper.children = next.children;\n next.children = [];\n for (let ch of wrapper.children)\n ch.parent = wrapper;\n }\n next.destroy();\n return wrapper;\n }\n // Insert the node as a newly created node desc.\n addNode(node, outerDeco, innerDeco, view, pos) {\n let desc = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (desc.contentDOM)\n desc.updateChildren(view, pos + 1);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n placeWidget(widget, view, pos) {\n let next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) &&\n (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n }\n else {\n let desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n }\n // Make sure a textblock looks and behaves correctly in\n // contentEditable.\n addTextblockHacks() {\n let lastChild = this.top.children[this.index - 1], parent = this.top;\n while (lastChild instanceof MarkViewDesc) {\n parent = lastChild;\n lastChild = parent.children[parent.children.length - 1];\n }\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text) ||\n (this.view.requiresGeckoHackNode && /\\s$/.test(lastChild.node.text))) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((safari || chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n this.addHackNode(\"IMG\", parent);\n this.addHackNode(\"BR\", this.top);\n }\n }\n addHackNode(nodeName, parent) {\n if (parent == this.top && this.index < parent.children.length && parent.children[this.index].matchesHack(nodeName)) {\n this.index++;\n }\n else {\n let dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") {\n dom.className = \"ProseMirror-separator\";\n dom.alt = \"\";\n }\n if (nodeName == \"BR\")\n dom.className = \"ProseMirror-trailingBreak\";\n let hack = new TrailingHackViewDesc(this.top, [], dom, null);\n if (parent != this.top)\n parent.children.push(hack);\n else\n parent.children.splice(this.index++, 0, hack);\n this.changed = true;\n }\n }\n isLocked(node) {\n return this.lock && (node == this.lock || node.nodeType == 1 && node.contains(this.lock.parentNode));\n }\n}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes. Returns the fragment index of the first node that\n// is part of the sequence of matched nodes at the end of the\n// fragment.\nfunction preMatch(frag, parentDesc) {\n let curDesc = parentDesc, descI = curDesc.children.length;\n let fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n let desc;\n for (;;) {\n if (descI) {\n let next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n }\n else {\n desc = next;\n descI--;\n break;\n }\n }\n else if (curDesc == parentDesc) {\n break outer;\n }\n else {\n // FIXME\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n let node = desc.node;\n if (!node)\n continue;\n if (node != frag.child(fI - 1))\n break;\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return { index: fI, matched, matches: matches.reverse() };\n}\nfunction compareSide(a, b) {\n return a.type.side - b.type.side;\n}\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n let locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (let i = 0; i < parent.childCount; i++) {\n let child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return;\n }\n let decoIndex = 0, active = [], restNode = null;\n for (let parentIndex = 0;;) {\n let widget, widgets;\n while (decoIndex < locals.length && locals[decoIndex].to == offset) {\n let next = locals[decoIndex++];\n if (next.widget) {\n if (!widget)\n widget = next;\n else\n (widgets || (widgets = [widget])).push(next);\n }\n }\n if (widget) {\n if (widgets) {\n widgets.sort(compareSide);\n for (let i = 0; i < widgets.length; i++)\n onWidget(widgets[i], parentIndex, !!restNode);\n }\n else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n let child, index;\n if (restNode) {\n index = -1;\n child = restNode;\n restNode = null;\n }\n else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child = parent.child(parentIndex++);\n }\n else {\n break;\n }\n for (let i = 0; i < active.length; i++)\n if (active[i].to <= offset)\n active.splice(i--, 1);\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n active.push(locals[decoIndex++]);\n let end = offset + child.nodeSize;\n if (child.isText) {\n let cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt)\n cutAt = locals[decoIndex].from;\n for (let i = 0; i < active.length; i++)\n if (active[i].to < cutAt)\n cutAt = active[i].to;\n if (cutAt < end) {\n restNode = child.cut(cutAt - offset);\n child = child.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n else {\n while (decoIndex < locals.length && locals[decoIndex].to < end)\n decoIndex++;\n }\n let outerDeco = child.isInline && !child.isLeaf ? active.filter(d => !d.inline) : active.slice();\n onNode(child, outerDeco, deco.forChild(offset, child), index);\n offset = end;\n }\n}\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n let oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (let i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n let child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText)\n continue;\n let str = child.text;\n while (i < frag.childCount) {\n let next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText)\n break;\n str += next.text;\n }\n if (pos >= from) {\n if (pos >= to && str.slice(to - text.length - childStart, to - childStart) == text)\n return to - text.length;\n let found = childStart < to ? str.lastIndexOf(text, to - childStart - 1) : -1;\n if (found >= 0 && found + text.length + childStart >= from)\n return childStart + found;\n if (from == to && str.length >= (to + text.length) - childStart &&\n str.slice(to - childStart, to - childStart + text.length) == text)\n return to;\n }\n }\n return -1;\n}\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n let result = [];\n for (let i = 0, off = 0; i < nodes.length; i++) {\n let child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n }\n else {\n if (start < from)\n result.push(child.slice(0, from - start, view));\n if (replacement) {\n result.push(replacement);\n replacement = undefined;\n }\n if (end > to)\n result.push(child.slice(to - start, child.size, view));\n }\n }\n return result;\n}\n\nfunction selectionFromDOM(view, origin = null) {\n let domSel = view.domSelectionRange(), doc = view.state.doc;\n if (!domSel.focusNode)\n return null;\n let nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n let head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset, 1);\n if (head < 0)\n return null;\n let $head = doc.resolve(head), $anchor, selection;\n if (selectionCollapsed(domSel)) {\n $anchor = $head;\n while (nearestDesc && !nearestDesc.node)\n nearestDesc = nearestDesc.parent;\n let nearestDescNode = nearestDesc.node;\n if (nearestDesc && nearestDescNode.isAtom && NodeSelection.isSelectable(nearestDescNode) && nearestDesc.parent\n && !(nearestDescNode.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n let pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n }\n else {\n let anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset, 1);\n if (anchor < 0)\n return null;\n $anchor = doc.resolve(anchor);\n }\n if (!selection) {\n let bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection;\n}\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom);\n}\nfunction selectionToDOM(view, force = false) {\n let sel = view.state.selection;\n syncNodeSelection(view, sel);\n if (!editorOwnsSelection(view))\n return;\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.input.mouseDown && view.input.mouseDown.allowDefault && chrome) {\n let domSel = view.domSelectionRange(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && curSel.anchorNode &&\n isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset, curSel.anchorNode, curSel.anchorOffset)) {\n view.input.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return;\n }\n }\n view.domObserver.disconnectSelection();\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n }\n else {\n let { anchor, head } = sel, resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent)\n resetEditableFrom = temporarilyEditableNear(view, sel.from);\n if (!sel.empty && !sel.$from.parent.inlineContent)\n resetEditableTo = temporarilyEditableNear(view, sel.to);\n }\n view.docView.setSelection(anchor, head, view.root, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom)\n resetEditable(resetEditableFrom);\n if (resetEditableTo)\n resetEditable(resetEditableTo);\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }\n else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document)\n removeClassOnSelectionChange(view);\n }\n }\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\nconst brokenSelectBetweenUneditable = safari || chrome && chrome_version < 63;\nfunction temporarilyEditableNear(view, pos) {\n let { node, offset } = view.docView.domFromPos(pos, 0);\n let after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n let before = offset ? node.childNodes[offset - 1] : null;\n if (safari && after && after.contentEditable == \"false\")\n return setEditable(after);\n if ((!after || after.contentEditable == \"false\") &&\n (!before || before.contentEditable == \"false\")) {\n if (after)\n return setEditable(after);\n else if (before)\n return setEditable(before);\n }\n}\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (safari && element.draggable) {\n element.draggable = false;\n element.wasDraggable = true;\n }\n return element;\n}\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) {\n element.draggable = true;\n element.wasDraggable = null;\n }\n}\nfunction removeClassOnSelectionChange(view) {\n let doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n let domSel = view.domSelectionRange();\n let node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.input.hideSelectionGuard = () => {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n setTimeout(() => {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }, 20);\n }\n });\n}\nfunction selectCursorWrapper(view) {\n let domSel = view.domSelection(), range = document.createRange();\n if (!domSel)\n return;\n let node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img)\n range.setStart(node.parentNode, domIndex(node) + 1);\n else\n range.setStart(node, 0);\n let sel = view.state.selection;\n if (sel.empty) {\n range.collapse(true);\n }\n else {\n let end = view.domAtPos(sel.to);\n range.setEnd(end.node, end.offset);\n }\n domSel.removeAllRanges();\n domSel.addRange(range);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && ie && ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n let desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc)\n desc.selectNode();\n view.lastSelectedViewDesc = desc;\n }\n }\n else {\n clearNodeSelection(view);\n }\n}\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n view.lastSelectedViewDesc.deselectNode();\n view.lastSelectedViewDesc = undefined;\n }\n}\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", f => f(view, $anchor, $head))\n || TextSelection.between($anchor, $head, bias);\n}\nfunction hasFocusAndSelection(view) {\n if (view.editable && !view.hasFocus())\n return false;\n return hasSelection(view);\n}\nfunction hasSelection(view) {\n let sel = view.domSelectionRange();\n if (!sel.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode));\n }\n catch (_) {\n return false;\n }\n}\nfunction anchorInRightPlace(view) {\n let anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n let domSel = view.domSelectionRange();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);\n}\n\nfunction moveSelectionBlock(state, dir) {\n let { $anchor, $head } = state.selection;\n let $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n let $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir);\n}\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true;\n}\nfunction selectHorizontally(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection) {\n if (mods.indexOf(\"s\") > -1) {\n let { $head } = sel, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter;\n if (!node || node.isText || !node.isLeaf)\n return false;\n let $newHead = view.state.doc.resolve($head.pos + node.nodeSize * (dir < 0 ? -1 : 1));\n return apply(view, new TextSelection(sel.$anchor, $newHead));\n }\n else if (!sel.empty) {\n return false;\n }\n else if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n return false;\n }\n else if (!(mac && mods.indexOf(\"m\") > -1)) {\n let $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText)\n return false;\n let nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM))\n return false;\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head));\n }\n else if (webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)));\n }\n else {\n return false;\n }\n }\n }\n else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from));\n }\n else {\n let next = moveSelectionBlock(view.state, dir);\n if (next)\n return apply(view, next);\n return false;\n }\n}\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction isIgnorable(dom, dir) {\n let desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dir < 0 || dom.nextSibling || dom.nodeName != \"BR\");\n}\nfunction skipIgnoredNodes(view, dir) {\n return dir < 0 ? skipIgnoredNodesBefore(view) : skipIgnoredNodesAfter(view);\n}\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesBefore(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset], -1))\n force = true;\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break;\n }\n else {\n let before = node.childNodes[offset - 1];\n if (isIgnorable(before, -1)) {\n moveNode = node;\n moveOffset = --offset;\n }\n else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n }\n else\n break;\n }\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let prev = node.previousSibling;\n while (prev && isIgnorable(prev, -1)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = 0;\n }\n else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force)\n setSelFocus(view, node, offset);\n else if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesAfter(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let len = nodeLen(node);\n let moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1)\n break;\n let after = node.childNodes[offset];\n if (isIgnorable(after, 1)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else\n break;\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let next = node.nextSibling;\n while (next && isIgnorable(next, 1)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = len = 0;\n }\n else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\nfunction isBlockNode(dom) {\n let desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock;\n}\nfunction textNodeAfter(node, offset) {\n while (node && offset == node.childNodes.length && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n while (node && offset < node.childNodes.length) {\n let next = node.childNodes[offset];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = 0;\n }\n}\nfunction textNodeBefore(node, offset) {\n while (node && !offset && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n while (node && offset) {\n let next = node.childNodes[offset - 1];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = node.childNodes.length;\n }\n}\nfunction setSelFocus(view, node, offset) {\n if (node.nodeType != 3) {\n let before, after;\n if (after = textNodeAfter(node, offset)) {\n node = after;\n offset = 0;\n }\n else if (before = textNodeBefore(node, offset)) {\n node = before;\n offset = before.nodeValue.length;\n }\n }\n let sel = view.domSelection();\n if (!sel)\n return;\n if (selectionCollapsed(sel)) {\n let range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n let { state } = view;\n // If no state update ends up happening, reset the selection.\n setTimeout(() => {\n if (view.state == state)\n selectionToDOM(view);\n }, 50);\n}\nfunction findDirection(view, pos) {\n let $pos = view.state.doc.resolve(pos);\n if (!(chrome || windows) && $pos.parent.inlineContent) {\n let coords = view.coordsAtPos(pos);\n if (pos > $pos.start()) {\n let before = view.coordsAtPos(pos - 1);\n let mid = (before.top + before.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(before.left - coords.left) > 1)\n return before.left < coords.left ? \"ltr\" : \"rtl\";\n }\n if (pos < $pos.end()) {\n let after = view.coordsAtPos(pos + 1);\n let mid = (after.top + after.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(after.left - coords.left) > 1)\n return after.left > coords.left ? \"ltr\" : \"rtl\";\n }\n }\n let computed = getComputedStyle(view.dom).direction;\n return computed == \"rtl\" ? \"rtl\" : \"ltr\";\n}\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1)\n return false;\n if (mac && mods.indexOf(\"m\") > -1)\n return false;\n let { $from, $to } = sel;\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n }\n if (!$from.parent.inlineContent) {\n let side = dir < 0 ? $from : $to;\n let beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false;\n }\n return false;\n}\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection))\n return true;\n let { $head, $anchor, empty } = view.state.selection;\n if (!$head.sameParent($anchor))\n return true;\n if (!empty)\n return false;\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\"))\n return true;\n let nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n let tr = view.state.tr;\n if (dir < 0)\n tr.delete($head.pos - nextNode.nodeSize, $head.pos);\n else\n tr.delete($head.pos, $head.pos + nextNode.nodeSize);\n view.dispatch(tr);\n return true;\n }\n return false;\n}\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!safari || view.state.selection.$head.parentOffset > 0)\n return false;\n let { focusNode, focusOffset } = view.domSelectionRange();\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n let child = focusNode.firstChild;\n switchEditable(view, child, \"true\");\n setTimeout(() => switchEditable(view, child, \"false\"), 20);\n }\n return false;\n}\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\nfunction getMods(event) {\n let result = \"\";\n if (event.ctrlKey)\n result += \"c\";\n if (event.metaKey)\n result += \"m\";\n if (event.altKey)\n result += \"a\";\n if (event.shiftKey)\n result += \"s\";\n return result;\n}\nfunction captureKeyDown(view, event) {\n let code = event.keyCode, mods = getMods(event);\n if (code == 8 || (mac && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodes(view, -1);\n }\n else if ((code == 46 && !event.shiftKey) || (mac && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodes(view, 1);\n }\n else if (code == 13 || code == 27) { // Enter, Esc\n return true;\n }\n else if (code == 37 || (mac && code == 66 && mods == \"c\")) { // Left arrow, Ctrl-b on Mac\n let dir = code == 37 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? -1 : 1) : -1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 39 || (mac && code == 70 && mods == \"c\")) { // Right arrow, Ctrl-f on Mac\n let dir = code == 39 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? 1 : -1) : 1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 38 || (mac && code == 80 && mods == \"c\")) { // Up arrow, Ctrl-p on Mac\n return selectVertically(view, -1, mods) || skipIgnoredNodes(view, -1);\n }\n else if (code == 40 || (mac && code == 78 && mods == \"c\")) { // Down arrow, Ctrl-n on Mac\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodes(view, 1);\n }\n else if (mods == (mac ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true;\n }\n return false;\n}\n\nfunction serializeForClipboard(view, slice) {\n view.someProp(\"transformCopied\", f => { slice = f(slice, view); });\n let context = [], { content, openStart, openEnd } = slice;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n let node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n let serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n let doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, { document: doc }));\n let firstChild = wrap.firstChild, needsWrap, wrappers = 0;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n let wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild)\n wrapper.appendChild(wrap.firstChild);\n wrap.appendChild(wrapper);\n wrappers++;\n }\n firstChild = wrap.firstChild;\n }\n if (firstChild && firstChild.nodeType == 1)\n firstChild.setAttribute(\"data-pm-slice\", `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : \"\"} ${JSON.stringify(context)}`);\n let text = view.someProp(\"clipboardTextSerializer\", f => f(slice, view)) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n return { dom: wrap, text, slice };\n}\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n let inCode = $context.parent.type.spec.code;\n let dom, slice;\n if (!html && !text)\n return null;\n let asText = text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", f => { text = f(text, inCode || plainText, view); });\n if (inCode)\n return text ? new Slice(Fragment.from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0) : Slice.empty;\n let parsed = view.someProp(\"clipboardTextParser\", f => f(text, $context, plainText, view));\n if (parsed) {\n slice = parsed;\n }\n else {\n let marks = $context.marks();\n let { schema } = view.state, serializer = DOMSerializer.fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(block => {\n let p = dom.appendChild(document.createElement(\"p\"));\n if (block)\n p.appendChild(serializer.serializeNode(schema.text(block, marks)));\n });\n }\n }\n else {\n view.someProp(\"transformPastedHTML\", f => { html = f(html, view); });\n dom = readHTML(html);\n if (webkit)\n restoreReplacedSpaces(dom);\n }\n let contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n let sliceData = contextNode && /^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\") || \"\");\n if (sliceData && sliceData[3])\n for (let i = +sliceData[3]; i > 0; i--) {\n let child = dom.firstChild;\n while (child && child.nodeType != 1)\n child = child.nextSibling;\n if (!child)\n break;\n dom = child;\n }\n if (!slice) {\n let parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName))\n return { ignore: true };\n return null;\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[4]);\n }\n else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n let openStart = 0, openEnd = 0;\n for (let node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating; openStart++, node = node.firstChild) { }\n for (let node = slice.content.lastChild; openEnd < slice.openEnd && !node.type.spec.isolating; openEnd++, node = node.lastChild) { }\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n return slice;\n}\nconst inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2)\n return fragment;\n for (let d = $context.depth; d >= 0; d--) {\n let parent = $context.node(d);\n let match = parent.contentMatchAt($context.index(d));\n let lastWrap, result = [];\n fragment.forEach(node => {\n if (!result)\n return;\n let wrap = match.findWrapping(node.type), inLast;\n if (!wrap)\n return result = null;\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n }\n else {\n if (result.length)\n result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);\n let wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type);\n lastWrap = wrap;\n }\n });\n if (result)\n return Fragment.from(result);\n }\n return fragment;\n}\nfunction withWrappers(node, wrap, from = 0) {\n for (let i = wrap.length - 1; i >= from; i--)\n node = wrap[i].create(null, Fragment.from(node));\n return node;\n}\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n let inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner)\n return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));\n let match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1))));\n }\n}\nfunction closeRight(node, depth) {\n if (depth == 0)\n return node;\n let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n let fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill));\n}\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n let node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (fragment.childCount > 1)\n openEnd = 0;\n if (depth < to - 1)\n inner = closeRange(inner, side, from, to, depth + 1, openEnd);\n if (depth >= from)\n inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true));\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));\n}\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);\n if (openEnd < slice.openEnd)\n slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);\n return slice;\n}\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"..\"` the table cells are ignored.\nconst wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nlet _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"));\n}\nfunction readHTML(html) {\n let metas = /^(\\s*]*>)*/.exec(html);\n if (metas)\n html = html.slice(metas[0].length);\n let elt = detachedDoc().createElement(\"div\");\n let firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n html = wrap.map(n => \"<\" + n + \">\").join(\"\") + html + wrap.map(n => \"\").reverse().join(\"\");\n elt.innerHTML = html;\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n elt = elt.querySelector(wrap[i]) || elt;\n return elt;\n}\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n let nodes = dom.querySelectorAll(chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (let i = 0; i < nodes.length; i++) {\n let node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node);\n }\n}\nfunction addContext(slice, context) {\n if (!slice.size)\n return slice;\n let schema = slice.content.firstChild.type.schema, array;\n try {\n array = JSON.parse(context);\n }\n catch (e) {\n return slice;\n }\n let { content, openStart, openEnd } = slice;\n for (let i = array.length - 2; i >= 0; i -= 2) {\n let type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs())\n break;\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n return new Slice(content, openStart, openEnd);\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nconst handlers = {};\nconst editHandlers = {};\nconst passiveHandlers = { touchstart: true, touchmove: true };\nclass InputState {\n constructor() {\n this.shiftKey = false;\n this.mouseDown = null;\n this.lastKeyCode = null;\n this.lastKeyCodeTime = 0;\n this.lastClick = { time: 0, x: 0, y: 0, type: \"\" };\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastIOSEnter = 0;\n this.lastIOSEnterFallbackTimeout = -1;\n this.lastFocus = 0;\n this.lastTouch = 0;\n this.lastAndroidDelete = 0;\n this.composing = false;\n this.compositionNode = null;\n this.composingTimeout = -1;\n this.compositionNodes = [];\n this.compositionEndedAt = -2e8;\n this.compositionID = 1;\n // Set to a composition ID when there are pending changes at compositionend\n this.compositionPendingChanges = 0;\n this.domChangeCount = 0;\n this.eventHandlers = Object.create(null);\n this.hideSelectionGuard = null;\n }\n}\nfunction initInput(view) {\n for (let event in handlers) {\n let handler = handlers[event];\n view.dom.addEventListener(event, view.input.eventHandlers[event] = (event) => {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n handler(view, event);\n }, passiveHandlers[event] ? { passive: true } : undefined);\n }\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (safari)\n view.dom.addEventListener(\"input\", () => null);\n ensureListeners(view);\n}\nfunction setSelectionOrigin(view, origin) {\n view.input.lastSelectionOrigin = origin;\n view.input.lastSelectionTime = Date.now();\n}\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (let type in view.input.eventHandlers)\n view.dom.removeEventListener(type, view.input.eventHandlers[type]);\n clearTimeout(view.input.composingTimeout);\n clearTimeout(view.input.lastIOSEnterFallbackTimeout);\n}\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", currentHandlers => {\n for (let type in currentHandlers)\n if (!view.input.eventHandlers[type])\n view.dom.addEventListener(type, view.input.eventHandlers[type] = event => runCustomHandler(view, event));\n });\n}\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", handlers => {\n let handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false;\n });\n}\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target; node != view.dom; node = node.parentNode)\n if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n return false;\n return true;\n}\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n handlers[event.type](view, event);\n}\neditHandlers.keydown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event))\n return;\n view.input.lastKeyCode = event.keyCode;\n view.input.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (android && chrome && event.keyCode == 13)\n return;\n if (event.keyCode != 229)\n view.domObserver.forceFlush();\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n let now = Date.now();\n view.input.lastIOSEnter = now;\n view.input.lastIOSEnterFallbackTimeout = setTimeout(() => {\n if (view.input.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")));\n view.input.lastIOSEnter = 0;\n }\n }, 200);\n }\n else if (view.someProp(\"handleKeyDown\", f => f(view, event)) || captureKeyDown(view, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"key\");\n }\n};\neditHandlers.keyup = (view, event) => {\n if (event.keyCode == 16)\n view.input.shiftKey = false;\n};\neditHandlers.keypress = (view, _event) => {\n let event = _event;\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || mac && event.metaKey)\n return;\n if (view.someProp(\"handleKeyPress\", f => f(view, event))) {\n event.preventDefault();\n return;\n }\n let sel = view.state.selection;\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n let text = String.fromCharCode(event.charCode);\n if (!/[\\r\\n]/.test(text) && !view.someProp(\"handleTextInput\", f => f(view, sel.$from.pos, sel.$to.pos, text)))\n view.dispatch(view.state.tr.insertText(text).scrollIntoView());\n event.preventDefault();\n }\n};\nfunction eventCoords(event) { return { left: event.clientX, top: event.clientY }; }\nfunction isNear(event, click) {\n let dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100;\n}\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n if (view.someProp(propName, f => i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false)))\n return true;\n }\n return false;\n}\nfunction updateSelection(view, selection, origin) {\n if (!view.focused)\n view.focus();\n if (view.state.selection.eq(selection))\n return;\n let tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n view.dispatch(tr);\n}\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true;\n }\n return false;\n}\nfunction selectClickedNode(view, inside) {\n if (inside == -1)\n return false;\n let sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof NodeSelection)\n selectedNode = sel.node;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n selectAt = $pos.before(sel.$from.depth);\n else\n selectAt = $pos.before(i);\n break;\n }\n }\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true;\n }\n else {\n return false;\n }\n}\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", f => f(view, pos, event)) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside));\n}\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", f => f(view, pos, event));\n}\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", f => f(view, pos, event)) ||\n defaultTripleClick(view, inside, event);\n}\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0)\n return false;\n let doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true;\n }\n return false;\n }\n let $pos = doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n let nodePos = $pos.before(i);\n if (node.inlineContent)\n updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\");\n else if (NodeSelection.isSelectable(node))\n updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\");\n else\n continue;\n return true;\n }\n}\nfunction forceDOMFlush(view) {\n return endComposition(view);\n}\nconst selectNodeModifier = mac ? \"metaKey\" : \"ctrlKey\";\nhandlers.mousedown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.shiftKey;\n let flushed = forceDOMFlush(view);\n let now = Date.now(), type = \"singleClick\";\n if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier]) {\n if (view.input.lastClick.type == \"singleClick\")\n type = \"doubleClick\";\n else if (view.input.lastClick.type == \"doubleClick\")\n type = \"tripleClick\";\n }\n view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type };\n let pos = view.posAtCoords(eventCoords(event));\n if (!pos)\n return;\n if (type == \"singleClick\") {\n if (view.input.mouseDown)\n view.input.mouseDown.done();\n view.input.mouseDown = new MouseDown(view, pos, event, !!flushed);\n }\n else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\nclass MouseDown {\n constructor(view, pos, event, flushed) {\n this.view = view;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.delayedSelectionSync = false;\n this.mightDrag = null;\n this.startDoc = view.state.doc;\n this.selectNode = !!event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n let targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n }\n else {\n let $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n const target = flushed ? null : event.target;\n const targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc && targetDesc.dom.nodeType == 1 ? targetDesc.dom : null;\n let { selection } = view.state;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof NodeSelection && selection.from <= targetPos && selection.to > targetPos)\n this.mightDrag = {\n node: targetNode,\n pos: targetPos,\n addAttr: !!(this.target && !this.target.draggable),\n setUneditable: !!(this.target && gecko && !this.target.hasAttribute(\"contentEditable\"))\n };\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.draggable = true;\n if (this.mightDrag.setUneditable)\n setTimeout(() => {\n if (this.view.input.mouseDown == this)\n this.target.setAttribute(\"contentEditable\", \"false\");\n }, 20);\n this.view.domObserver.start();\n }\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n }\n done() {\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.removeAttribute(\"draggable\");\n if (this.mightDrag.setUneditable)\n this.target.removeAttribute(\"contentEditable\");\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync)\n setTimeout(() => selectionToDOM(this.view));\n this.view.input.mouseDown = null;\n }\n up(event) {\n this.done();\n if (!this.view.dom.contains(event.target))\n return;\n let pos = this.pos;\n if (this.view.state.doc != this.startDoc)\n pos = this.view.posAtCoords(eventCoords(event));\n this.updateAllowDefault(event);\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n }\n else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n }\n else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (chrome && !this.view.state.selection.visible &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from), Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n }\n else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n }\n move(event) {\n this.updateAllowDefault(event);\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0)\n this.done();\n }\n updateAllowDefault(event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n this.allowDefault = true;\n }\n}\nhandlers.touchstart = view => {\n view.input.lastTouch = Date.now();\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.touchmove = view => {\n view.input.lastTouch = Date.now();\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.contextmenu = view => forceDOMFlush(view);\nfunction inOrNearComposition(view, event) {\n if (view.composing)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (safari && Math.abs(event.timeStamp - view.input.compositionEndedAt) < 500) {\n view.input.compositionEndedAt = -2e8;\n return true;\n }\n return false;\n}\n// Drop active composition after 5 seconds of inactivity on Android\nconst timeoutComposition = android ? 5000 : -1;\neditHandlers.compositionstart = editHandlers.compositionupdate = view => {\n if (!view.composing) {\n view.domObserver.flush();\n let { state } = view, $pos = state.selection.$to;\n if (state.selection instanceof TextSelection &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(m => m.type.spec.inclusive === false)))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n }\n else {\n endComposition(view);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n let sel = view.domSelectionRange();\n for (let node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n let before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before)\n break;\n if (before.nodeType == 3) {\n let sel = view.domSelection();\n if (sel)\n sel.collapse(before, before.nodeValue.length);\n break;\n }\n else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.input.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\neditHandlers.compositionend = (view, event) => {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = event.timeStamp;\n view.input.compositionPendingChanges = view.domObserver.pendingRecords().length ? view.input.compositionID : 0;\n view.input.compositionNode = null;\n if (view.input.compositionPendingChanges)\n Promise.resolve().then(() => view.domObserver.flush());\n view.input.compositionID++;\n scheduleComposeEnd(view, 20);\n }\n};\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.input.composingTimeout);\n if (delay > -1)\n view.input.composingTimeout = setTimeout(() => endComposition(view), delay);\n}\nfunction clearComposition(view) {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.input.compositionNodes.length > 0)\n view.input.compositionNodes.pop().markParentsDirty();\n}\nfunction findCompositionNode(view) {\n let sel = view.domSelectionRange();\n if (!sel.focusNode)\n return null;\n let textBefore = textNodeBefore$1(sel.focusNode, sel.focusOffset);\n let textAfter = textNodeAfter$1(sel.focusNode, sel.focusOffset);\n if (textBefore && textAfter && textBefore != textAfter) {\n let descAfter = textAfter.pmViewDesc, lastChanged = view.domObserver.lastChangedTextNode;\n if (textBefore == lastChanged || textAfter == lastChanged)\n return lastChanged;\n if (!descAfter || !descAfter.isText(textAfter.nodeValue)) {\n return textAfter;\n }\n else if (view.input.compositionNode == textAfter) {\n let descBefore = textBefore.pmViewDesc;\n if (!(!descBefore || !descBefore.isText(textBefore.nodeValue)))\n return textAfter;\n }\n }\n return textBefore || textAfter;\n}\nfunction timestampFromCustomEvent() {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp;\n}\n/**\n@internal\n*/\nfunction endComposition(view, forceUpdate = false) {\n if (android && view.domObserver.flushingSoon >= 0)\n return;\n view.domObserver.forceFlush();\n clearComposition(view);\n if (forceUpdate || view.docView && view.docView.dirty) {\n let sel = selectionFromDOM(view);\n if (sel && !sel.eq(view.state.selection))\n view.dispatch(view.state.tr.setSelection(sel));\n else\n view.updateState(view.state);\n return true;\n }\n return false;\n}\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode)\n return;\n let wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n let sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(() => {\n if (wrap.parentNode)\n wrap.parentNode.removeChild(wrap);\n view.focus();\n }, 50);\n}\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (ie && ie_version < 15) ||\n (ios && webkit_version < 604);\nhandlers.copy = editHandlers.cut = (view, _event) => {\n let event = _event;\n let sel = view.state.selection, cut = event.type == \"cut\";\n if (sel.empty)\n return;\n // IE and Edge's clipboard interface is completely broken\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let slice = sel.content(), { dom, text } = serializeForClipboard(view, slice);\n if (data) {\n event.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n }\n else {\n captureCopy(view, dom);\n }\n if (cut)\n view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n};\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null;\n}\nfunction capturePaste(view, event) {\n if (!view.dom.parentNode)\n return;\n let plainText = view.input.shiftKey || view.state.selection.$from.parent.type.spec.code;\n let target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText)\n target.contentEditable = \"true\";\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n setTimeout(() => {\n view.focus();\n if (target.parentNode)\n target.parentNode.removeChild(target);\n if (plainText)\n doPaste(view, target.value, null, plain, event);\n else\n doPaste(view, target.textContent, target.innerHTML, plain, event);\n }, 50);\n}\nfunction doPaste(view, text, html, preferPlain, event) {\n let slice = parseFromClipboard(view, text, html, preferPlain, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", f => f(view, event, slice || Slice.empty)))\n return true;\n if (!slice)\n return false;\n let singleNode = sliceSingleNode(slice);\n let tr = singleNode\n ? view.state.tr.replaceSelectionWith(singleNode, preferPlain)\n : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true;\n}\nfunction getText(clipboardData) {\n let text = clipboardData.getData(\"text/plain\") || clipboardData.getData(\"Text\");\n if (text)\n return text;\n let uris = clipboardData.getData(\"text/uri-list\");\n return uris ? uris.replace(/\\r?\\n/g, \" \") : \"\";\n}\neditHandlers.paste = (view, _event) => {\n let event = _event;\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !android)\n return;\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n if (data && doPaste(view, getText(data), data.getData(\"text/html\"), plain, event))\n event.preventDefault();\n else\n capturePaste(view, event);\n};\nclass Dragging {\n constructor(slice, move, node) {\n this.slice = slice;\n this.move = move;\n this.node = node;\n }\n}\nconst dragCopyModifier = mac ? \"altKey\" : \"ctrlKey\";\nhandlers.dragstart = (view, _event) => {\n let event = _event;\n let mouseDown = view.input.mouseDown;\n if (mouseDown)\n mouseDown.done();\n if (!event.dataTransfer)\n return;\n let sel = view.state.selection;\n let pos = sel.empty ? null : view.posAtCoords(eventCoords(event));\n let node;\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1 : sel.to)) ;\n else if (mouseDown && mouseDown.mightDrag) {\n node = NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos);\n }\n else if (event.target && event.target.nodeType == 1) {\n let desc = view.docView.nearestDesc(event.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n node = NodeSelection.create(view.state.doc, desc.posBefore);\n }\n let draggedSlice = (node || view.state.selection).content();\n let { dom, text, slice } = serializeForClipboard(view, draggedSlice);\n // Pre-120 Chrome versions clear files when calling `clearData` (#1472)\n if (!event.dataTransfer.files.length || !chrome || chrome_version > 120)\n event.dataTransfer.clearData();\n event.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n event.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI)\n event.dataTransfer.setData(\"text/plain\", text);\n view.dragging = new Dragging(slice, !event[dragCopyModifier], node);\n};\nhandlers.dragend = view => {\n let dragging = view.dragging;\n window.setTimeout(() => {\n if (view.dragging == dragging)\n view.dragging = null;\n }, 50);\n};\neditHandlers.dragover = editHandlers.dragenter = (_, e) => e.preventDefault();\neditHandlers.drop = (view, _event) => {\n let event = _event;\n let dragging = view.dragging;\n view.dragging = null;\n if (!event.dataTransfer)\n return;\n let eventPos = view.posAtCoords(eventCoords(event));\n if (!eventPos)\n return;\n let $mouse = view.state.doc.resolve(eventPos.pos);\n let slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n }\n else {\n slice = parseFromClipboard(view, getText(event.dataTransfer), brokenClipboardAPI ? null : event.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n let move = !!(dragging && !event[dragCopyModifier]);\n if (view.someProp(\"handleDrop\", f => f(view, event, slice || Slice.empty, move))) {\n event.preventDefault();\n return;\n }\n if (!slice)\n return;\n event.preventDefault();\n let insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null)\n insertPos = $mouse.pos;\n let tr = view.state.tr;\n if (move) {\n let { node } = dragging;\n if (node)\n node.replace(tr);\n else\n tr.deleteSelection();\n }\n let pos = tr.mapping.map(insertPos);\n let isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n let beforeInsert = tr.doc;\n if (isNode)\n tr.replaceRangeWith(pos, pos, slice.content.firstChild);\n else\n tr.replaceRange(pos, pos, slice);\n if (tr.doc.eq(beforeInsert))\n return;\n let $pos = tr.doc.resolve(pos);\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n }\n else {\n let end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach((_from, _to, _newFrom, newTo) => end = newTo);\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\nhandlers.focus = view => {\n view.input.lastFocus = Date.now();\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(() => {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.domSelectionRange()))\n selectionToDOM(view);\n }, 20);\n }\n};\nhandlers.blur = (view, _event) => {\n let event = _event;\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (event.relatedTarget && view.dom.contains(event.relatedTarget))\n view.domObserver.currentSelection.clear();\n view.focused = false;\n }\n};\nhandlers.beforeinput = (view, _event) => {\n let event = _event;\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (chrome && android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n let { domChangeCount } = view.input;\n setTimeout(() => {\n if (view.input.domChangeCount != domChangeCount)\n return; // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\"))))\n return;\n let { $cursor } = view.state.selection;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0)\n view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView());\n }, 50);\n }\n};\n// Make sure all handlers get registered\nfor (let prop in editHandlers)\n handlers[prop] = editHandlers[prop];\n\nfunction compareObjs(a, b) {\n if (a == b)\n return true;\n for (let p in a)\n if (a[p] !== b[p])\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n return true;\n}\nclass WidgetType {\n constructor(toDOM, spec) {\n this.toDOM = toDOM;\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n }\n map(mapping, span, offset, oldOffset) {\n let { pos, deleted } = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n return deleted ? null : new Decoration(pos - offset, pos - offset, this);\n }\n valid() { return true; }\n eq(other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)));\n }\n destroy(node) {\n if (this.spec.destroy)\n this.spec.destroy(node);\n }\n}\nclass InlineType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n let to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this);\n }\n valid(_, span) { return span.from < span.to; }\n eq(other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n static is(span) { return span.type instanceof InlineType; }\n destroy() { }\n}\nclass NodeType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted)\n return null;\n let to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos)\n return null;\n return new Decoration(from.pos - offset, to.pos - offset, this);\n }\n valid(node, span) {\n let { index, offset } = node.content.findIndex(span.from), child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to;\n }\n eq(other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n destroy() { }\n}\n/**\nDecoration objects can be provided to the view through the\n[`decorations` prop](https://prosemirror.net/docs/ref/#view.EditorProps.decorations). They come in\nseveral variants—see the static members of this class for details.\n*/\nclass Decoration {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the decoration.\n */\n from, \n /**\n The end position. Will be the same as `from` for [widget\n decorations](https://prosemirror.net/docs/ref/#view.Decoration^widget).\n */\n to, \n /**\n @internal\n */\n type) {\n this.from = from;\n this.to = to;\n this.type = type;\n }\n /**\n @internal\n */\n copy(from, to) {\n return new Decoration(from, to, this.type);\n }\n /**\n @internal\n */\n eq(other, offset = 0) {\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to;\n }\n /**\n @internal\n */\n map(mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset);\n }\n /**\n Creates a widget decoration, which is a DOM node that's shown in\n the document at the given position. It is recommended that you\n delay rendering the widget by passing a function that will be\n called when the widget is actually drawn in a view, but you can\n also directly pass a DOM node. `getPos` can be used to find the\n widget's current document position.\n */\n static widget(pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec));\n }\n /**\n Creates an inline decoration, which adds the given attributes to\n each inline node between `from` and `to`.\n */\n static inline(from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec));\n }\n /**\n Creates a node decoration. `from` and `to` should point precisely\n before and after a node in the document. That node, and only that\n node, will receive the given attributes.\n */\n static node(from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec));\n }\n /**\n The spec provided when creating this decoration. Can be useful\n if you've stored extra information in that object.\n */\n get spec() { return this.type.spec; }\n /**\n @internal\n */\n get inline() { return this.type instanceof InlineType; }\n /**\n @internal\n */\n get widget() { return this.type instanceof WidgetType; }\n}\nconst none = [], noSpec = {};\n/**\nA collection of [decorations](https://prosemirror.net/docs/ref/#view.Decoration), organized in such\na way that the drawing algorithm can efficiently use and compare\nthem. This is a persistent data structure—it is not modified,\nupdates create a new value.\n*/\nclass DecorationSet {\n /**\n @internal\n */\n constructor(local, children) {\n this.local = local.length ? local : none;\n this.children = children.length ? children : none;\n }\n /**\n Create a set of decorations, using the structure of the given\n document. This will consume (modify) the `decorations` array, so\n you must make a copy if you want need to preserve that.\n */\n static create(doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty;\n }\n /**\n Find all decorations in this set which touch the given range\n (including decorations that start or end directly at the\n boundaries) and match the given predicate on their spec. When\n `start` and `end` are omitted, all decorations in the set are\n considered. When `predicate` isn't given, all decorations are\n assumed to match.\n */\n find(start, end, predicate) {\n let result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result;\n }\n findInner(start, end, result, offset, predicate) {\n for (let i = 0; i < this.local.length; i++) {\n let span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n result.push(span.copy(span.from + offset, span.to + offset));\n }\n for (let i = 0; i < this.children.length; i += 3) {\n if (this.children[i] < end && this.children[i + 1] > start) {\n let childOff = this.children[i] + 1;\n this.children[i + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n }\n /**\n Map the set of decorations in response to a change in the\n document.\n */\n map(mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0)\n return this;\n return this.mapInner(mapping, doc, 0, 0, options || noSpec);\n }\n /**\n @internal\n */\n mapInner(mapping, node, offset, oldOffset, options) {\n let newLocal;\n for (let i = 0; i < this.local.length; i++) {\n let mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped))\n (newLocal || (newLocal = [])).push(mapped);\n else if (options.onRemove)\n options.onRemove(this.local[i].spec);\n }\n if (this.children.length)\n return mapChildren(this.children, newLocal || [], mapping, node, offset, oldOffset, options);\n else\n return newLocal ? new DecorationSet(newLocal.sort(byPos), none) : empty;\n }\n /**\n Add the given array of decorations to the ones in the set,\n producing a new set. Consumes the `decorations` array. Needs\n access to the current document to create the appropriate tree\n structure.\n */\n add(doc, decorations) {\n if (!decorations.length)\n return this;\n if (this == empty)\n return DecorationSet.create(doc, decorations);\n return this.addInner(doc, decorations, 0);\n }\n addInner(doc, decorations, offset) {\n let children, childIndex = 0;\n doc.forEach((childNode, childOffset) => {\n let baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset)))\n return;\n if (!children)\n children = this.children.slice();\n while (childIndex < children.length && children[childIndex] < childOffset)\n childIndex += 3;\n if (children[childIndex] == childOffset)\n children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1);\n else\n children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec));\n childIndex += 3;\n });\n let local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (let i = 0; i < local.length; i++)\n if (!local[i].type.valid(doc, local[i]))\n local.splice(i--, 1);\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local, children || this.children);\n }\n /**\n Create a new set that contains the decorations in this set, minus\n the ones in the given array.\n */\n remove(decorations) {\n if (decorations.length == 0 || this == empty)\n return this;\n return this.removeInner(decorations, 0);\n }\n removeInner(decorations, offset) {\n let children = this.children, local = this.local;\n for (let i = 0; i < children.length; i += 3) {\n let found;\n let from = children[i] + offset, to = children[i + 1] + offset;\n for (let j = 0, span; j < decorations.length; j++)\n if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null;\n (found || (found = [])).push(span);\n }\n }\n if (!found)\n continue;\n if (children == this.children)\n children = this.children.slice();\n let removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n }\n else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length)\n for (let i = 0, span; i < decorations.length; i++)\n if (span = decorations[i]) {\n for (let j = 0; j < local.length; j++)\n if (local[j].eq(span, offset)) {\n if (local == this.local)\n local = this.local.slice();\n local.splice(j--, 1);\n }\n }\n if (children == this.children && local == this.local)\n return this;\n return local.length || children.length ? new DecorationSet(local, children) : empty;\n }\n forChild(offset, node) {\n if (this == empty)\n return this;\n if (node.isLeaf)\n return DecorationSet.empty;\n let child, local;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] >= offset) {\n if (this.children[i] == offset)\n child = this.children[i + 2];\n break;\n }\n let start = offset + 1, end = start + node.content.size;\n for (let i = 0; i < this.local.length; i++) {\n let dec = this.local[i];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n let from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to)\n (local || (local = [])).push(dec.copy(from, to));\n }\n }\n if (local) {\n let localSet = new DecorationSet(local.sort(byPos), none);\n return child ? new DecorationGroup([localSet, child]) : localSet;\n }\n return child || empty;\n }\n /**\n @internal\n */\n eq(other) {\n if (this == other)\n return true;\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length)\n return false;\n for (let i = 0; i < this.local.length; i++)\n if (!this.local[i].eq(other.local[i]))\n return false;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] != other.children[i] ||\n this.children[i + 1] != other.children[i + 1] ||\n !this.children[i + 2].eq(other.children[i + 2]))\n return false;\n return true;\n }\n /**\n @internal\n */\n locals(node) {\n return removeOverlap(this.localsInner(node));\n }\n /**\n @internal\n */\n localsInner(node) {\n if (this == empty)\n return none;\n if (node.inlineContent || !this.local.some(InlineType.is))\n return this.local;\n let result = [];\n for (let i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n result.push(this.local[i]);\n }\n return result;\n }\n}\n/**\nThe empty set of decorations.\n*/\nDecorationSet.empty = new DecorationSet([], []);\n/**\n@internal\n*/\nDecorationSet.removeOverlap = removeOverlap;\nconst empty = DecorationSet.empty;\n// An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nclass DecorationGroup {\n constructor(members) {\n this.members = members;\n }\n map(mapping, doc) {\n const mappedDecos = this.members.map(member => member.map(mapping, doc, noSpec));\n return DecorationGroup.from(mappedDecos);\n }\n forChild(offset, child) {\n if (child.isLeaf)\n return DecorationSet.empty;\n let found = [];\n for (let i = 0; i < this.members.length; i++) {\n let result = this.members[i].forChild(offset, child);\n if (result == empty)\n continue;\n if (result instanceof DecorationGroup)\n found = found.concat(result.members);\n else\n found.push(result);\n }\n return DecorationGroup.from(found);\n }\n eq(other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length)\n return false;\n for (let i = 0; i < this.members.length; i++)\n if (!this.members[i].eq(other.members[i]))\n return false;\n return true;\n }\n locals(node) {\n let result, sorted = true;\n for (let i = 0; i < this.members.length; i++) {\n let locals = this.members[i].localsInner(node);\n if (!locals.length)\n continue;\n if (!result) {\n result = locals;\n }\n else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (let j = 0; j < locals.length; j++)\n result.push(locals[j]);\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none;\n }\n // Create a group for the given array of decoration sets, or return\n // a single set when possible.\n static from(members) {\n switch (members.length) {\n case 0: return empty;\n case 1: return members[0];\n default: return new DecorationGroup(members.every(m => m instanceof DecorationSet) ? members :\n members.reduce((r, m) => r.concat(m instanceof DecorationSet ? m : m.members), []));\n }\n }\n}\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n let children = oldChildren.slice();\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n for (let i = 0, baseOffset = oldOffset; i < mapping.maps.length; i++) {\n let moved = 0;\n mapping.maps[i].forEach((oldStart, oldEnd, newStart, newEnd) => {\n let dSize = (newEnd - newStart) - (oldEnd - oldStart);\n for (let i = 0; i < children.length; i += 3) {\n let end = children[i + 1];\n if (end < 0 || oldStart > end + baseOffset - moved)\n continue;\n let start = children[i] + baseOffset - moved;\n if (oldEnd >= start) {\n children[i + 1] = oldStart <= start ? -2 : -1;\n }\n else if (oldStart >= baseOffset && dSize) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n moved += dSize;\n });\n baseOffset = mapping.maps[i].map(baseOffset, -1);\n }\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n let mustRebuild = false;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) { // Touched nodes\n if (children[i + 1] == -2) {\n mustRebuild = true;\n children[i + 1] = -1;\n continue;\n }\n let from = mapping.map(oldChildren[i] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue;\n }\n // Must read oldChildren because children was tagged with -1\n let to = mapping.map(oldChildren[i + 1] + oldOffset, -1), toLocal = to - offset;\n let { index, offset: childOffset } = node.content.findIndex(fromLocal);\n let childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n let mapped = children[i + 2]\n .mapInner(mapping, childNode, from + 1, oldChildren[i] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i] = fromLocal;\n children[i + 1] = toLocal;\n children[i + 2] = mapped;\n }\n else {\n children[i + 1] = -2;\n mustRebuild = true;\n }\n }\n else {\n mustRebuild = true;\n }\n }\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n let decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal, mapping, offset, oldOffset, options);\n let built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) {\n children.splice(i, 3);\n i -= 3;\n }\n for (let i = 0, j = 0; i < built.children.length; i += 3) {\n let from = built.children[i];\n while (j < children.length && children[j] < from)\n j += 3;\n children.splice(j, 0, built.children[i], built.children[i + 1], built.children[i + 2]);\n }\n }\n return new DecorationSet(newLocal.sort(byPos), children);\n}\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length)\n return spans;\n let result = [];\n for (let i = 0; i < spans.length; i++) {\n let span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result;\n}\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (let i = 0; i < set.local.length; i++) {\n let mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped)\n decorations.push(mapped);\n else if (options.onRemove)\n options.onRemove(set.local[i].spec);\n }\n for (let i = 0; i < set.children.length; i += 3)\n gather(set.children[i + 2], set.children[i] + oldOffset + 1);\n }\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] == -1)\n gather(children[i + 2], oldChildren[i] + oldOffset + 1);\n return decorations;\n}\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf)\n return null;\n let end = offset + node.nodeSize, found = null;\n for (let i = 0, span; i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n (found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found;\n}\nfunction withoutNulls(array) {\n let result = [];\n for (let i = 0; i < array.length; i++)\n if (array[i] != null)\n result.push(array[i]);\n return result;\n}\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n let children = [], hasNulls = false;\n node.forEach((childNode, localStart) => {\n let found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n let subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n children.push(localStart, localStart + childNode.nodeSize, subtree);\n }\n });\n let locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (let i = 0; i < locals.length; i++)\n if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove)\n options.onRemove(locals[i].spec);\n locals.splice(i--, 1);\n }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty;\n}\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to;\n}\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n let working = spans;\n for (let i = 0; i < working.length - 1; i++) {\n let span = working[i];\n if (span.from != span.to)\n for (let j = i + 1; j < working.length; j++) {\n let next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans)\n working = spans.slice();\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue;\n }\n else {\n if (next.from < span.to) {\n if (working == spans)\n working = spans.slice();\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break;\n }\n }\n }\n return working;\n}\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0)\n i++;\n array.splice(i, 0, deco);\n}\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n let found = [];\n view.someProp(\"decorations\", f => {\n let result = f(view.state);\n if (result && result != empty)\n found.push(result);\n });\n if (view.cursorWrapper)\n found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco]));\n return DecorationGroup.from(found);\n}\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nconst useCharData = ie && ie_version <= 11;\nclass SelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n set(sel) {\n this.anchorNode = sel.anchorNode;\n this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode;\n this.focusOffset = sel.focusOffset;\n }\n clear() {\n this.anchorNode = this.focusNode = null;\n }\n eq(sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset;\n }\n}\nclass DOMObserver {\n constructor(view, handleDOMChange) {\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = null;\n this.currentSelection = new SelectionState;\n this.onCharData = null;\n this.suppressingSelectionUpdates = false;\n this.lastChangedTextNode = null;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(mutations => {\n for (let i = 0; i < mutations.length; i++)\n this.queue.push(mutations[i]);\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n if (ie && ie_version <= 11 && mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length))\n this.flushSoon();\n else\n this.flush();\n });\n if (useCharData) {\n this.onCharData = e => {\n this.queue.push({ target: e.target, type: \"characterData\", oldValue: e.prevValue });\n this.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n }\n flushSoon() {\n if (this.flushingSoon < 0)\n this.flushingSoon = window.setTimeout(() => { this.flushingSoon = -1; this.flush(); }, 20);\n }\n forceFlush() {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n }\n start() {\n if (this.observer) {\n this.observer.takeRecords();\n this.observer.observe(this.view.dom, observeOptions);\n }\n if (this.onCharData)\n this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.connectSelection();\n }\n stop() {\n if (this.observer) {\n let take = this.observer.takeRecords();\n if (take.length) {\n for (let i = 0; i < take.length; i++)\n this.queue.push(take[i]);\n window.setTimeout(() => this.flush(), 20);\n }\n this.observer.disconnect();\n }\n if (this.onCharData)\n this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.disconnectSelection();\n }\n connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n suppressSelectionUpdates() {\n this.suppressingSelectionUpdates = true;\n setTimeout(() => this.suppressingSelectionUpdates = false, 50);\n }\n onSelectionChange() {\n if (!hasFocusAndSelection(this.view))\n return;\n if (this.suppressingSelectionUpdates)\n return selectionToDOM(this.view);\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (ie && ie_version <= 11 && !this.view.state.selection.empty) {\n let sel = this.view.domSelectionRange();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n return this.flushSoon();\n }\n this.flush();\n }\n setCurSelection() {\n this.currentSelection.set(this.view.domSelectionRange());\n }\n ignoreSelectionChange(sel) {\n if (!sel.focusNode)\n return true;\n let ancestors = new Set, container;\n for (let scan = sel.focusNode; scan; scan = parentNode(scan))\n ancestors.add(scan);\n for (let scan = sel.anchorNode; scan; scan = parentNode(scan))\n if (ancestors.has(scan)) {\n container = scan;\n break;\n }\n let desc = container && this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({\n type: \"selection\",\n target: container.nodeType == 3 ? container.parentNode : container\n })) {\n this.setCurSelection();\n return true;\n }\n }\n pendingRecords() {\n if (this.observer)\n for (let mut of this.observer.takeRecords())\n this.queue.push(mut);\n return this.queue;\n }\n flush() {\n let { view } = this;\n if (!view.docView || this.flushingSoon > -1)\n return;\n let mutations = this.pendingRecords();\n if (mutations.length)\n this.queue = [];\n let sel = view.domSelectionRange();\n let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);\n let from = -1, to = -1, typeOver = false, added = [];\n if (view.editable) {\n for (let i = 0; i < mutations.length; i++) {\n let result = this.registerMutation(mutations[i], added);\n if (result) {\n from = from < 0 ? result.from : Math.min(result.from, from);\n to = to < 0 ? result.to : Math.max(result.to, to);\n if (result.typeOver)\n typeOver = true;\n }\n }\n }\n if (gecko && added.length) {\n let brs = added.filter(n => n.nodeName == \"BR\");\n if (brs.length == 2) {\n let [a, b] = brs;\n if (a.parentNode && a.parentNode.parentNode == b.parentNode)\n b.remove();\n else\n a.remove();\n }\n else {\n let { focusNode } = this.currentSelection;\n for (let br of brs) {\n let parent = br.parentNode;\n if (parent && parent.nodeName == \"LI\" && (!focusNode || blockParent(view, focusNode) != parent))\n br.remove();\n }\n }\n }\n let readSel = null;\n // If it looks like the browser has reset the selection to the\n // start of the document after focus, restore the selection from\n // the state\n if (from < 0 && newSel && view.input.lastFocus > Date.now() - 200 &&\n Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 &&\n selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) &&\n readSel.eq(Selection.near(view.state.doc.resolve(0), 1))) {\n view.input.lastFocus = 0;\n selectionToDOM(view);\n this.currentSelection.set(sel);\n view.scrollToSelection();\n }\n else if (from > -1 || newSel) {\n if (from > -1) {\n view.docView.markDirty(from, to);\n checkCSS(view);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (view.docView && view.docView.dirty)\n view.updateState(view.state);\n else if (!this.currentSelection.eq(sel))\n selectionToDOM(view);\n this.currentSelection.set(sel);\n }\n }\n registerMutation(mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1)\n return null;\n let desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n return null;\n if (!desc || desc.ignoreMutation(mut))\n return null;\n if (mut.type == \"childList\") {\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let node = mut.addedNodes[i];\n added.push(node);\n if (node.nodeType == 3)\n this.lastChangedTextNode = node;\n }\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n return { from: desc.posBefore, to: desc.posAfter };\n let prev = mut.previousSibling, next = mut.nextSibling;\n if (ie && ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let { previousSibling, nextSibling } = mut.addedNodes[i];\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0)\n prev = previousSibling;\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0)\n next = nextSibling;\n }\n }\n let fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n let from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n let toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n let to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return { from, to };\n }\n else if (mut.type == \"attributes\") {\n return { from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border };\n }\n else { // \"characterData\"\n this.lastChangedTextNode = mut.target;\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n };\n }\n }\n}\nlet cssChecked = new WeakMap();\nlet cssCheckWarned = false;\nfunction checkCSS(view) {\n if (cssChecked.has(view))\n return;\n cssChecked.set(view, null);\n if (['normal', 'nowrap', 'pre-line'].indexOf(getComputedStyle(view.dom).whiteSpace) !== -1) {\n view.requiresGeckoHackNode = gecko;\n if (cssCheckWarned)\n return;\n console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\");\n cssCheckWarned = true;\n }\n}\nfunction rangeToSelectionRange(view, range) {\n let anchorNode = range.startContainer, anchorOffset = range.startOffset;\n let focusNode = range.endContainer, focusOffset = range.endOffset;\n let currentAnchor = view.domAtPos(view.state.selection.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(currentAnchor.node, currentAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n// Used to work around a Safari Selection/shadow DOM bug\n// Based on https://github.com/codemirror/dev/issues/414 fix\nfunction safariShadowSelectionRange(view, selection) {\n if (selection.getComposedRanges) {\n let range = selection.getComposedRanges(view.root)[0];\n if (range)\n return rangeToSelectionRange(view, range);\n }\n let found;\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n // Because Safari (at least in 2018-2022) doesn't provide regular\n // access to the selection inside a shadowRoot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n view.dom.addEventListener(\"beforeinput\", read, true);\n document.execCommand(\"indent\");\n view.dom.removeEventListener(\"beforeinput\", read, true);\n return found ? rangeToSelectionRange(view, found) : null;\n}\nfunction blockParent(view, node) {\n for (let p = node.parentNode; p && p != view.dom; p = p.parentNode) {\n let desc = view.docView.nearestDesc(p, true);\n if (desc && desc.node.isBlock)\n return p;\n }\n return null;\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\nfunction parseBetween(view, from_, to_) {\n let { node: parent, fromOffset, toOffset, from, to } = view.docView.parseRange(from_, to_);\n let domSel = view.domSelectionRange();\n let find;\n let anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{ node: anchor, offset: domSel.anchorOffset }];\n if (!selectionCollapsed(domSel))\n find.push({ node: domSel.focusNode, offset: domSel.focusOffset });\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (chrome && view.input.lastKeyCode === 8) {\n for (let off = toOffset; off > fromOffset; off--) {\n let node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) {\n toOffset = off;\n break;\n }\n if (!desc || desc.size)\n break;\n }\n }\n let startDoc = view.state.doc;\n let parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n let $from = startDoc.resolve(from);\n let sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n findPositions: find,\n ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n let anchor = find[0].pos, head = find[1] && find[1].pos;\n if (head == null)\n head = anchor;\n sel = { anchor: anchor + from, head: head + from };\n }\n return { doc, sel, from, to };\n}\nfunction ruleFromNode(dom) {\n let desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule();\n }\n else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n let skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return { skip };\n }\n else if (dom.parentNode.lastChild == dom || safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return { ignore: true };\n }\n }\n else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return { ignore: true };\n }\n return null;\n}\nconst isInline = /^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n let compositionID = view.input.compositionPendingChanges || (view.composing ? view.input.compositionID : 0);\n view.input.compositionPendingChanges = 0;\n if (from < 0) {\n let origin = view.input.lastSelectionTime > Date.now() - 50 ? view.input.lastSelectionOrigin : null;\n let newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n if (chrome && android &&\n view.input.lastKeyCode === 13 && Date.now() - 100 < view.input.lastKeyCodeTime &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\"))))\n return;\n let tr = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n else if (origin == \"key\")\n tr.scrollIntoView();\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n return;\n }\n let $before = view.state.doc.resolve(from);\n let shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n let sel = view.state.selection;\n let parse = parseBetween(view, from, to);\n let doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n let preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.input.lastKeyCode === 8 && Date.now() - 100 < view.input.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n }\n else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.input.lastKeyCode = null;\n let change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if ((ios && view.input.lastIOSEnter > Date.now() - 225 || android) &&\n addedNodes.some(n => n.nodeType == 1 && !isInline.test(n.nodeName)) &&\n (!change || change.endA >= change.endB) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = { start: sel.from, endA: sel.to, endB: sel.to };\n }\n else {\n if (parse.sel) {\n let sel = resolveSelection(view, view.state.doc, parse.sel);\n if (sel && !sel.eq(view.state.selection)) {\n let tr = view.state.tr.setSelection(sel);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n }\n return;\n }\n }\n view.input.domChangeCount++;\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2 &&\n view.state.selection.from >= parse.from) {\n change.start = view.state.selection.from;\n }\n else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2 &&\n view.state.selection.to <= parse.to) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (ie && ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n let $from = parse.doc.resolveNoCache(change.start - parse.from);\n let $to = parse.doc.resolveNoCache(change.endB - parse.from);\n let $fromA = doc.resolve(change.start);\n let inlineChange = $from.sameParent($to) && $from.parent.inlineContent && $fromA.end() >= change.endA;\n let nextSel;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((ios && view.input.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(n => n.nodeName == \"DIV\" || n.nodeName == \"P\"))) ||\n (!inlineChange && $from.pos < parse.doc.content.size && !$from.sameParent($to) &&\n (nextSel = Selection.findFrom(parse.doc.resolve($from.pos + 1), 1, true)) &&\n nextSel.head == $to.pos)) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeBackspace(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\")))) {\n if (android && chrome)\n view.domObserver.suppressSelectionUpdates(); // #820\n return;\n }\n // Chrome Android will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (chrome && android && change.endB == change.start)\n view.input.lastAndroidDelete = Date.now();\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(() => {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n let chFrom = change.start, chTo = change.endA;\n let tr, storedMarks, markChange;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (ie && ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(() => selectionToDOM(view), 20);\n }\n tr = view.state.tr.delete(chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n }\n else if ( // Adding or removing a mark\n change.endA == change.endB &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {\n tr = view.state.tr;\n if (markChange.type == \"add\")\n tr.addMark(chFrom, chTo, markChange.mark);\n else\n tr.removeMark(chFrom, chTo, markChange.mark);\n }\n else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n if (view.someProp(\"handleTextInput\", f => f(view, chFrom, chTo, text)))\n return;\n tr = view.state.tr.insertText(text, chFrom, chTo);\n }\n }\n if (!tr)\n tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));\n if (parse.sel) {\n let sel = resolveSelection(view, tr.doc, parse.sel);\n // Chrome Android will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel && !(chrome && android && view.composing && sel.empty &&\n (change.start != change.endB || view.input.lastAndroidDelete < Date.now() - 100) &&\n (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||\n ie && sel.empty && sel.head == chFrom))\n tr.setSelection(sel);\n }\n if (storedMarks)\n tr.ensureMarks(storedMarks);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr.scrollIntoView());\n}\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)\n return null;\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head));\n}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n let curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n let added = curMarks, removed = prevMarks, type, mark, update;\n for (let i = 0; i < prevMarks.length; i++)\n added = prevMarks[i].removeFromSet(added);\n for (let i = 0; i < curMarks.length; i++)\n removed = curMarks[i].removeFromSet(removed);\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = (node) => node.mark(mark.addToSet(node.marks));\n }\n else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = (node) => node.mark(mark.removeFromSet(node.marks));\n }\n else {\n return null;\n }\n let updated = [];\n for (let i = 0; i < prev.childCount; i++)\n updated.push(update(prev.child(i)));\n if (Fragment.from(updated).eq(cur))\n return { mark, type };\n}\nfunction looksLikeBackspace(old, start, end, $newStart, $newEnd) {\n if ( // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n return false;\n let $start = old.resolve(start);\n // Handle the case where, rather than joining blocks, the change just removed an entire block\n if (!$newStart.parent.isTextblock) {\n let after = $start.nodeAfter;\n return after != null && end == start + after.nodeSize;\n }\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n return false;\n let $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n return false;\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);\n}\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n let depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n let next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end;\n}\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n let start = a.findDiffStart(b, pos);\n if (start == null)\n return null;\n let { a: endA, b: endB } = a.findDiffEnd(b, pos + a.size, pos + b.size);\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n let move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n if (start && start < b.size && isSurrogatePair(b.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endB = start + (endB - endA);\n endA = start;\n }\n else if (endB < start) {\n let move = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move;\n if (start && start < a.size && isSurrogatePair(a.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endA = start + (endA - endB);\n endB = start;\n }\n return { start, endA, endB };\n}\nfunction isSurrogatePair(str) {\n if (str.length != 2)\n return false;\n let a = str.charCodeAt(0), b = str.charCodeAt(1);\n return a >= 0xDC00 && a <= 0xDFFF && b >= 0xD800 && b <= 0xDBFF;\n}\n\n/**\n@internal\n*/\nconst __serializeForClipboard = serializeForClipboard;\n/**\n@internal\n*/\nconst __parseFromClipboard = parseFromClipboard;\n/**\n@internal\n*/\nconst __endComposition = endComposition;\n/**\nAn editor view manages the DOM structure that represents an\neditable document. Its state and behavior are determined by its\n[props](https://prosemirror.net/docs/ref/#view.DirectEditorProps).\n*/\nclass EditorView {\n /**\n Create a view. `place` may be a DOM node that the editor should\n be appended to, a function that will place it into the document,\n or an object whose `mount` property holds the node to use as the\n document container. If it is `null`, the editor will not be\n added to the document.\n */\n constructor(place, props) {\n this._root = null;\n /**\n @internal\n */\n this.focused = false;\n /**\n Kludge used to work around a Chrome bug @internal\n */\n this.trackWrites = null;\n this.mounted = false;\n /**\n @internal\n */\n this.markCursor = null;\n /**\n @internal\n */\n this.cursorWrapper = null;\n /**\n @internal\n */\n this.lastSelectedViewDesc = undefined;\n /**\n @internal\n */\n this.input = new InputState;\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n /**\n Holds `true` when a hack node is needed in Firefox to prevent the\n [space is eaten issue](https://github.com/ProseMirror/prosemirror/issues/651)\n @internal\n */\n this.requiresGeckoHackNode = false;\n /**\n When editor content is being dragged, this object contains\n information about the dragged slice and whether it is being\n copied or moved. At any other time, it is null.\n */\n this.dragging = null;\n this._props = props;\n this.state = props.state;\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n this.dispatch = this.dispatch.bind(this);\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild)\n place.appendChild(this.dom);\n else if (typeof place == \"function\")\n place(this.dom);\n else if (place.mount)\n this.mounted = true;\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n this.domObserver = new DOMObserver(this, (from, to, typeOver, added) => readDOMChange(this, from, to, typeOver, added));\n this.domObserver.start();\n initInput(this);\n this.updatePluginViews();\n }\n /**\n Holds `true` when a\n [composition](https://w3c.github.io/uievents/#events-compositionevents)\n is active.\n */\n get composing() { return this.input.composing; }\n /**\n The view's current [props](https://prosemirror.net/docs/ref/#view.EditorProps).\n */\n get props() {\n if (this._props.state != this.state) {\n let prev = this._props;\n this._props = {};\n for (let name in prev)\n this._props[name] = prev[name];\n this._props.state = this.state;\n }\n return this._props;\n }\n /**\n Update the view's props. Will immediately cause an update to\n the DOM.\n */\n update(props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents)\n ensureListeners(this);\n let prevProps = this._props;\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, prevProps);\n }\n /**\n Update the view by updating existing props object with the object\n given as argument. Equivalent to `view.update(Object.assign({},\n view.props, props))`.\n */\n setProps(props) {\n let updated = {};\n for (let name in this._props)\n updated[name] = this._props[name];\n updated.state = this.state;\n for (let name in props)\n updated[name] = props[name];\n this.update(updated);\n }\n /**\n Update the editor's `state` prop, without touching any of the\n other props.\n */\n updateState(state) {\n this.updateStateInner(state, this._props);\n }\n updateStateInner(state, prevProps) {\n var _a;\n let prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n let pluginsChanged = prev.plugins != state.plugins || this._props.plugins != prevProps.plugins;\n if (pluginsChanged || this._props.plugins != prevProps.plugins || this._props.nodeViews != prevProps.nodeViews) {\n let nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n }\n if (pluginsChanged || prevProps.handleDOMEvents != this._props.handleDOMEvents) {\n ensureListeners(this);\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n let innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n let scroll = prev.plugins != state.plugins && !prev.doc.eq(state.doc) ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n let updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection))\n updateSel = true;\n let oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n let forceSelUpdate = updateDoc && (ie || chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n let chromeKludge = chrome ? (this.trackWrites = this.domSelectionRange().focusNode) : null;\n if (this.composing)\n this.input.compositionNode = findCompositionNode(this);\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco(outerDeco);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && !this.trackWrites)\n forceSelUpdate = true;\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) &&\n anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n }\n else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n this.updatePluginViews(prev);\n if (((_a = this.dragging) === null || _a === void 0 ? void 0 : _a.node) && !prev.doc.eq(state.doc))\n this.updateDraggedNode(this.dragging, prev);\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n }\n else if (scroll == \"to selection\") {\n this.scrollToSelection();\n }\n else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n }\n /**\n @internal\n */\n scrollToSelection() {\n let startDOM = this.domSelectionRange().focusNode;\n if (this.someProp(\"handleScrollToSelection\", f => f(this))) ;\n else if (this.state.selection instanceof NodeSelection) {\n let target = this.docView.domAfterPos(this.state.selection.from);\n if (target.nodeType == 1)\n scrollRectIntoView(this, target.getBoundingClientRect(), startDOM);\n }\n else {\n scrollRectIntoView(this, this.coordsAtPos(this.state.selection.head, 1), startDOM);\n }\n }\n destroyPluginViews() {\n let view;\n while (view = this.pluginViews.pop())\n if (view.destroy)\n view.destroy();\n }\n updatePluginViews(prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (let i = 0; i < this.directPlugins.length; i++) {\n let plugin = this.directPlugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n for (let i = 0; i < this.state.plugins.length; i++) {\n let plugin = this.state.plugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n }\n else {\n for (let i = 0; i < this.pluginViews.length; i++) {\n let pluginView = this.pluginViews[i];\n if (pluginView.update)\n pluginView.update(this, prevState);\n }\n }\n }\n updateDraggedNode(dragging, prev) {\n let sel = dragging.node, found = -1;\n if (this.state.doc.nodeAt(sel.from) == sel.node) {\n found = sel.from;\n }\n else {\n let movedPos = sel.from + (this.state.doc.content.size - prev.doc.content.size);\n let moved = movedPos > 0 && this.state.doc.nodeAt(movedPos);\n if (moved == sel.node)\n found = movedPos;\n }\n this.dragging = new Dragging(dragging.slice, dragging.move, found < 0 ? undefined : NodeSelection.create(this.state.doc, found));\n }\n someProp(propName, f) {\n let prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n for (let i = 0; i < this.directPlugins.length; i++) {\n let prop = this.directPlugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n let plugins = this.state.plugins;\n if (plugins)\n for (let i = 0; i < plugins.length; i++) {\n let prop = plugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n }\n /**\n Query whether the view has focus.\n */\n hasFocus() {\n // Work around IE not handling focus correctly if resize handles are shown.\n // If the cursor is inside an element with resize handles, activeElement\n // will be that element instead of this.dom.\n if (ie) {\n // If activeElement is within this.dom, and there are no other elements\n // setting `contenteditable` to false in between, treat it as focused.\n let node = this.root.activeElement;\n if (node == this.dom)\n return true;\n if (!node || !this.dom.contains(node))\n return false;\n while (node && this.dom != node && this.dom.contains(node)) {\n if (node.contentEditable == 'false')\n return false;\n node = node.parentElement;\n }\n return true;\n }\n return this.root.activeElement == this.dom;\n }\n /**\n Focus the editor.\n */\n focus() {\n this.domObserver.stop();\n if (this.editable)\n focusPreventScroll(this.dom);\n selectionToDOM(this);\n this.domObserver.start();\n }\n /**\n Get the document root in which the editor exists. This will\n usually be the top-level `document`, but might be a [shadow\n DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n root if the editor is inside one.\n */\n get root() {\n let cached = this._root;\n if (cached == null)\n for (let search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection)\n Object.getPrototypeOf(search).getSelection = () => search.ownerDocument.getSelection();\n return this._root = search;\n }\n }\n return cached || document;\n }\n /**\n When an existing editor view is moved to a new document or\n shadow tree, call this to make it recompute its root.\n */\n updateRoot() {\n this._root = null;\n }\n /**\n Given a pair of viewport coordinates, return the document\n position that corresponds to them. May return null if the given\n coordinates aren't inside of the editor. When an object is\n returned, its `pos` property is the position nearest to the\n coordinates, and its `inside` property holds the position of the\n inner node that the position falls inside of, or -1 if it is at\n the top level, not in any node.\n */\n posAtCoords(coords) {\n return posAtCoords(this, coords);\n }\n /**\n Returns the viewport rectangle at a given document position.\n `left` and `right` will be the same number, as this returns a\n flat cursor-ish rectangle. If the position is between two things\n that aren't directly adjacent, `side` determines which element\n is used. When < 0, the element before the position is used,\n otherwise the element after.\n */\n coordsAtPos(pos, side = 1) {\n return coordsAtPos(this, pos, side);\n }\n /**\n Find the DOM position that corresponds to the given document\n position. When `side` is negative, find the position as close as\n possible to the content before the position. When positive,\n prefer positions close to the content after the position. When\n zero, prefer as shallow a position as possible.\n \n Note that you should **not** mutate the editor's internal DOM,\n only inspect it (and even that is usually not necessary).\n */\n domAtPos(pos, side = 0) {\n return this.docView.domFromPos(pos, side);\n }\n /**\n Find the DOM node that represents the document node after the\n given position. May return `null` when the position doesn't point\n in front of a node or if the node is inside an opaque node view.\n \n This is intended to be able to call things like\n `getBoundingClientRect` on that DOM node. Do **not** mutate the\n editor DOM directly, or add styling this way, since that will be\n immediately overriden by the editor as it redraws the node.\n */\n nodeDOM(pos) {\n let desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null;\n }\n /**\n Find the document position that corresponds to a given DOM\n position. (Whenever possible, it is preferable to inspect the\n document structure directly, rather than poking around in the\n DOM, but sometimes—for example when interpreting an event\n target—you don't have a choice.)\n \n The `bias` parameter can be used to influence which side of a DOM\n node to use when the position is inside a leaf node.\n */\n posAtDOM(node, offset, bias = -1) {\n let pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null)\n throw new RangeError(\"DOM position not inside the editor\");\n return pos;\n }\n /**\n Find out whether the selection is at the end of a textblock when\n moving in a given direction. When, for example, given `\"left\"`,\n it will return true if moving left from the current cursor\n position would leave that position's parent textblock. Will apply\n to the view's current state by default, but it is possible to\n pass a different state.\n */\n endOfTextblock(dir, state) {\n return endOfTextblock(this, state || this.state, dir);\n }\n /**\n Run the editor's paste logic with the given HTML string. The\n `event`, if given, will be passed to the\n [`handlePaste`](https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste) hook.\n */\n pasteHTML(html, event) {\n return doPaste(this, \"\", html, false, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Run the editor's paste logic with the given plain-text input.\n */\n pasteText(text, event) {\n return doPaste(this, text, null, true, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Removes the editor from the DOM and destroys all [node\n views](https://prosemirror.net/docs/ref/#view.NodeView).\n */\n destroy() {\n if (!this.docView)\n return;\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n }\n else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n clearReusedRange();\n }\n /**\n This is true when the view has been\n [destroyed](https://prosemirror.net/docs/ref/#view.EditorView.destroy) (and thus should not be\n used anymore).\n */\n get isDestroyed() {\n return this.docView == null;\n }\n /**\n Used for testing.\n */\n dispatchEvent(event) {\n return dispatchEvent(this, event);\n }\n /**\n Dispatch a transaction. Will call\n [`dispatchTransaction`](https://prosemirror.net/docs/ref/#view.DirectEditorProps.dispatchTransaction)\n when given, and otherwise defaults to applying the transaction to\n the current state and calling\n [`updateState`](https://prosemirror.net/docs/ref/#view.EditorView.updateState) with the result.\n This method is bound to the view instance, so that it can be\n easily passed around.\n */\n dispatch(tr) {\n let dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction)\n dispatchTransaction.call(this, tr);\n else\n this.updateState(this.state.apply(tr));\n }\n /**\n @internal\n */\n domSelectionRange() {\n let sel = this.domSelection();\n if (!sel)\n return { focusNode: null, focusOffset: 0, anchorNode: null, anchorOffset: 0 };\n return safari && this.root.nodeType === 11 &&\n deepActiveElement(this.dom.ownerDocument) == this.dom && safariShadowSelectionRange(this, sel) || sel;\n }\n /**\n @internal\n */\n domSelection() {\n return this.root.getSelection();\n }\n}\nfunction computeDocDeco(view) {\n let attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n view.someProp(\"attributes\", value => {\n if (typeof value == \"function\")\n value = value(view.state);\n if (value)\n for (let attr in value) {\n if (attr == \"class\")\n attrs.class += \" \" + value[attr];\n else if (attr == \"style\")\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n attrs[attr] = String(value[attr]);\n }\n });\n if (!attrs.translate)\n attrs.translate = \"no\";\n return [Decoration.node(0, view.state.doc.content.size, attrs)];\n}\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n let dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n dom.setAttribute(\"alt\", \"\");\n view.cursorWrapper = { dom, deco: Decoration.widget(view.state.selection.from, dom, { raw: true, marks: view.markCursor }) };\n }\n else {\n view.cursorWrapper = null;\n }\n}\nfunction getEditable(view) {\n return !view.someProp(\"editable\", value => value(view.state) === false);\n}\nfunction selectionContextChanged(sel1, sel2) {\n let depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth);\n}\nfunction buildNodeViews(view) {\n let result = Object.create(null);\n function add(obj) {\n for (let prop in obj)\n if (!Object.prototype.hasOwnProperty.call(result, prop))\n result[prop] = obj[prop];\n }\n view.someProp(\"nodeViews\", add);\n view.someProp(\"markViews\", add);\n return result;\n}\nfunction changedNodeViews(a, b) {\n let nA = 0, nB = 0;\n for (let prop in a) {\n if (a[prop] != b[prop])\n return true;\n nA++;\n }\n for (let _ in b)\n nB++;\n return nA != nB;\n}\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n throw new RangeError(\"Plugins passed directly to the view must not have a state component\");\n}\n\nexport { Decoration, DecorationSet, EditorView, __endComposition, __parseFromClipboard, __serializeForClipboard };\n","export var base = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 10: \"Enter\",\n 12: \"NumLock\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 44: \"PrintScreen\",\n 45: \"Insert\",\n 46: \"Delete\",\n 59: \";\",\n 61: \"=\",\n 91: \"Meta\",\n 92: \"Meta\",\n 106: \"*\",\n 107: \"+\",\n 108: \",\",\n 109: \"-\",\n 110: \".\",\n 111: \"/\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 160: \"Shift\",\n 161: \"Shift\",\n 162: \"Control\",\n 163: \"Control\",\n 164: \"Alt\",\n 165: \"Alt\",\n 173: \"-\",\n 186: \";\",\n 187: \"=\",\n 188: \",\",\n 189: \"-\",\n 190: \".\",\n 191: \"/\",\n 192: \"`\",\n 219: \"[\",\n 220: \"\\\\\",\n 221: \"]\",\n 222: \"'\",\n 229: \"q\"\n}\n\nexport var shift = {\n 48: \")\",\n 49: \"!\",\n 50: \"@\",\n 51: \"#\",\n 52: \"$\",\n 53: \"%\",\n 54: \"^\",\n 55: \"&\",\n 56: \"*\",\n 57: \"(\",\n 59: \":\",\n 61: \"+\",\n 173: \"_\",\n 186: \":\",\n 187: \"+\",\n 188: \"<\",\n 189: \"_\",\n 190: \">\",\n 191: \"?\",\n 192: \"~\",\n 219: \"{\",\n 220: \"|\",\n 221: \"}\",\n 222: \"\\\"\",\n 229: \"Q\"\n}\n\nvar chrome = typeof navigator != \"undefined\" && /Chrome\\/(\\d+)/.exec(navigator.userAgent)\nvar safari = typeof navigator != \"undefined\" && /Apple Computer/.test(navigator.vendor)\nvar gecko = typeof navigator != \"undefined\" && /Gecko\\/\\d+/.test(navigator.userAgent)\nvar mac = typeof navigator != \"undefined\" && /Mac/.test(navigator.platform)\nvar ie = typeof navigator != \"undefined\" && /MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent)\nvar brokenModifierNames = chrome && (mac || +chrome[1] < 57) || gecko && mac\n\n// Fill in the digit keys\nfor (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i)\n\n// The function keys\nfor (var i = 1; i <= 24; i++) base[i + 111] = \"F\" + i\n\n// And the alphabetic keys\nfor (var i = 65; i <= 90; i++) {\n base[i] = String.fromCharCode(i + 32)\n shift[i] = String.fromCharCode(i)\n}\n\n// For each code that doesn't have a shift-equivalent, copy the base name\nfor (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code]\n\nexport function keyName(event) {\n // Don't trust event.key in Chrome when there are modifiers until\n // they fix https://bugs.chromium.org/p/chromium/issues/detail?id=633838\n var ignoreKey = brokenModifierNames && (event.ctrlKey || event.altKey || event.metaKey) ||\n (safari || ie) && event.shiftKey && event.key && event.key.length == 1\n var name = (!ignoreKey && event.key) ||\n (event.shiftKey ? shift : base)[event.keyCode] ||\n event.key || \"Unidentified\"\n // Edge sometimes produces wrong names (Issue #3)\n if (name == \"Esc\") name = \"Escape\"\n if (name == \"Del\") name = \"Delete\"\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n if (name == \"Left\") name = \"ArrowLeft\"\n if (name == \"Up\") name = \"ArrowUp\"\n if (name == \"Right\") name = \"ArrowRight\"\n if (name == \"Down\") name = \"ArrowDown\"\n return name\n}\n","import { keyName, base } from 'w3c-keyname';\nimport { Plugin } from 'prosemirror-state';\n\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\nfunction normalizeKeyName(name) {\n let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; i++) {\n let mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (mac)\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction normalize(map) {\n let copy = Object.create(null);\n for (let prop in map)\n copy[normalizeKeyName(prop)] = map[prop];\n return copy;\n}\nfunction modifiers(name, event, shift = true) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\n/**\nCreate a keymap plugin for the given set of bindings.\n\nBindings should map key names to [command](https://prosemirror.net/docs/ref/#commands)-style\nfunctions, which will be called with `(EditorState, dispatch,\nEditorView)` arguments, and should return true when they've handled\nthe key. Note that the view argument isn't part of the command\nprotocol, but can be used as an escape hatch if a binding needs to\ndirectly interact with the UI.\n\nKey names may be strings like `\"Shift-Ctrl-Enter\"`—a key\nidentifier prefixed with zero or more modifiers. Key identifiers\nare based on the strings that can appear in\n[`KeyEvent.key`](https:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key).\nUse lowercase letters to refer to letter keys (or uppercase letters\nif you want shift to be held). You may use `\"Space\"` as an alias\nfor the `\" \"` name.\n\nModifiers can be given in any order. `Shift-` (or `s-`), `Alt-` (or\n`a-`), `Ctrl-` (or `c-` or `Control-`) and `Cmd-` (or `m-` or\n`Meta-`) are recognized. For characters that are created by holding\nshift, the `Shift-` prefix is implied, and should not be added\nexplicitly.\n\nYou can use `Mod-` as a shorthand for `Cmd-` on Mac and `Ctrl-` on\nother platforms.\n\nYou can add multiple keymap plugins to an editor. The order in\nwhich they appear determines their precedence (the ones early in\nthe array get to dispatch first).\n*/\nfunction keymap(bindings) {\n return new Plugin({ props: { handleKeyDown: keydownHandler(bindings) } });\n}\n/**\nGiven a set of bindings (using the same format as\n[`keymap`](https://prosemirror.net/docs/ref/#keymap.keymap)), return a [keydown\nhandler](https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown) that handles them.\n*/\nfunction keydownHandler(bindings) {\n let map = normalize(bindings);\n return function (view, event) {\n let name = keyName(event), baseName, direct = map[modifiers(name, event)];\n if (direct && direct(view.state, view.dispatch, view))\n return true;\n // A character key\n if (name.length == 1 && name != \" \") {\n if (event.shiftKey) {\n // In case the name was already modified by shift, try looking\n // it up without its shift modifier\n let noShift = map[modifiers(name, event, false)];\n if (noShift && noShift(view.state, view.dispatch, view))\n return true;\n }\n if ((event.shiftKey || event.altKey || event.metaKey || name.charCodeAt(0) > 127) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n // Try falling back to the keyCode when there's a modifier\n // active or the character produced isn't ASCII, and our table\n // produces a different name from the the keyCode. See #668,\n // #1060\n let fromCode = map[modifiers(baseName, event)];\n if (fromCode && fromCode(view.state, view.dispatch, view))\n return true;\n }\n }\n return false;\n };\n}\n\nexport { keydownHandler, keymap };\n","import { liftTarget, replaceStep, ReplaceStep, canJoin, joinPoint, canSplit, ReplaceAroundStep, findWrapping } from 'prosemirror-transform';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { NodeSelection, Selection, TextSelection, AllSelection, SelectionRange } from 'prosemirror-state';\n\n/**\nDelete the selection, if there is one.\n*/\nconst deleteSelection = (state, dispatch) => {\n if (state.selection.empty)\n return false;\n if (dispatch)\n dispatch(state.tr.deleteSelection().scrollIntoView());\n return true;\n};\nfunction atBlockStart(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and at the start of a textblock, try to\nreduce the distance between that block and the one before it—if\nthere's a block directly before it that can be joined, join them.\nIf not, try to move the selected block closer to the next one in\nthe document structure by lifting it out of its parent or moving it\ninto a parent of the previous block. Will use the view for accurate\n(bidi-aware) start-of-textblock detection if given.\n*/\nconst joinBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n // If there is no node before this, try to lift\n if (!$cut) {\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n let before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, -1))\n return true;\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || NodeSelection.isSelectable(before))) {\n for (let depth = $cursor.depth;; depth--) {\n let delStep = replaceStep(state.doc, $cursor.before(depth), $cursor.after(depth), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\")\n ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : NodeSelection.create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n if (depth == 1 || $cursor.node(depth - 1).childCount > 1)\n break;\n }\n }\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nA more limited form of [`joinBackward`]($commands.joinBackward)\nthat only tries to join the current textblock to the one before\nit, if the cursor is at the start of a textblock.\n*/\nconst joinTextblockBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\n/**\nA more limited form of [`joinForward`]($commands.joinForward)\nthat only tries to join the current textblock to the one after\nit, if the cursor is at the end of a textblock.\n*/\nconst joinTextblockForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\nfunction joinTextblocksAround(state, $cut, dispatch) {\n let before = $cut.nodeBefore, beforeText = before, beforePos = $cut.pos - 1;\n for (; !beforeText.isTextblock; beforePos--) {\n if (beforeText.type.spec.isolating)\n return false;\n let child = beforeText.lastChild;\n if (!child)\n return false;\n beforeText = child;\n }\n let after = $cut.nodeAfter, afterText = after, afterPos = $cut.pos + 1;\n for (; !afterText.isTextblock; afterPos++) {\n if (afterText.type.spec.isolating)\n return false;\n let child = afterText.firstChild;\n if (!child)\n return false;\n afterText = child;\n }\n let step = replaceStep(state.doc, beforePos, afterPos, Slice.empty);\n if (!step || step.from != beforePos ||\n step instanceof ReplaceStep && step.slice.size >= afterPos - beforePos)\n return false;\n if (dispatch) {\n let tr = state.tr.step(step);\n tr.setSelection(TextSelection.create(tr.doc, beforePos));\n dispatch(tr.scrollIntoView());\n }\n return true;\n}\nfunction textblockAt(node, side, only = false) {\n for (let scan = node; scan; scan = (side == \"start\" ? scan.firstChild : scan.lastChild)) {\n if (scan.isTextblock)\n return true;\n if (only && scan.childCount != 1)\n return false;\n }\n return false;\n}\n/**\nWhen the selection is empty and at the start of a textblock, select\nthe node before that textblock, if possible. This is intended to be\nbound to keys like backspace, after\n[`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward) or other deleting\ncommands, as a fall-back behavior when the schema doesn't allow\ndeletion at the selected point.\n*/\nconst selectNodeBackward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0)\n return false;\n $cut = findCutBefore($head);\n }\n let node = $cut && $cut.nodeBefore;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());\n return true;\n};\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0)\n return $pos.doc.resolve($pos.before(i + 1));\n if ($pos.node(i).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction atBlockEnd(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and the cursor is at the end of a\ntextblock, try to reduce or remove the boundary between that block\nand the one after it, either by joining them or by moving the other\nblock closer to this one in the tree structure. Will use the view\nfor accurate start-of-textblock detection if given.\n*/\nconst joinForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n // If there is no node after this, there's nothing to do\n if (!$cut)\n return false;\n let after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, 1))\n return true;\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || NodeSelection.isSelectable(after))) {\n let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : NodeSelection.create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nWhen the selection is empty and at the end of a textblock, select\nthe node coming after that textblock, if possible. This is intended\nto be bound to keys like delete, after\n[`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward) and similar deleting\ncommands, to provide a fall-back behavior when the schema doesn't\nallow deletion at the selected point.\n*/\nconst selectNodeForward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n return false;\n $cut = findCutAfter($head);\n }\n let node = $cut && $cut.nodeAfter;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView());\n return true;\n};\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n let parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount)\n return $pos.doc.resolve($pos.after(i + 1));\n if (parent.type.spec.isolating)\n break;\n }\n return null;\n}\n/**\nJoin the selected block or, if there is a text selection, the\nclosest ancestor block of the selection that can be joined, with\nthe sibling above it.\n*/\nconst joinUp = (state, dispatch) => {\n let sel = state.selection, nodeSel = sel instanceof NodeSelection, point;\n if (nodeSel) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.from))\n return false;\n point = sel.from;\n }\n else {\n point = joinPoint(state.doc, sel.from, -1);\n if (point == null)\n return false;\n }\n if (dispatch) {\n let tr = state.tr.join(point);\n if (nodeSel)\n tr.setSelection(NodeSelection.create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nJoin the selected block, or the closest ancestor of the selection\nthat can be joined, with the sibling after it.\n*/\nconst joinDown = (state, dispatch) => {\n let sel = state.selection, point;\n if (sel instanceof NodeSelection) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.to))\n return false;\n point = sel.to;\n }\n else {\n point = joinPoint(state.doc, sel.to, 1);\n if (point == null)\n return false;\n }\n if (dispatch)\n dispatch(state.tr.join(point).scrollIntoView());\n return true;\n};\n/**\nLift the selected block, or the closest ancestor block of the\nselection that can be lifted, out of its parent node.\n*/\nconst lift = (state, dispatch) => {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nIf the selection is in a node whose type has a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, replace the\nselection with a newline character.\n*/\nconst newlineInCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n if (dispatch)\n dispatch(state.tr.insertText(\"\\n\").scrollIntoView());\n return true;\n};\nfunction defaultBlockAt(match) {\n for (let i = 0; i < match.edgeCount; i++) {\n let { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs())\n return type;\n }\n return null;\n}\n/**\nWhen the selection is in a node with a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, create a\ndefault block after the code block, and move the cursor there.\n*/\nconst exitCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n let above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt(above.contentMatchAt(after));\n if (!type || !above.canReplaceWith(after, after, type))\n return false;\n if (dispatch) {\n let pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf a block node is selected, create an empty paragraph before (if\nit is its parent's first child) or after it.\n*/\nconst createParagraphNear = (state, dispatch) => {\n let sel = state.selection, { $from, $to } = sel;\n if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent)\n return false;\n let type = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock)\n return false;\n if (dispatch) {\n let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n let tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(TextSelection.create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf the cursor is in an empty textblock that can be lifted, lift the\nblock.\n*/\nconst liftEmptyBlock = (state, dispatch) => {\n let { $cursor } = state.selection;\n if (!$cursor || $cursor.parent.content.size)\n return false;\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n let before = $cursor.before();\n if (canSplit(state.doc, before)) {\n if (dispatch)\n dispatch(state.tr.split(before).scrollIntoView());\n return true;\n }\n }\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nCreate a variant of [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock) that uses\na custom function to determine the type of the newly split off block.\n*/\nfunction splitBlockAs(splitNode) {\n return (state, dispatch) => {\n let { $from, $to } = state.selection;\n if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(state.doc, $from.pos))\n return false;\n if (dispatch)\n dispatch(state.tr.split($from.pos).scrollIntoView());\n return true;\n }\n if (!$from.parent.isBlock)\n return false;\n if (dispatch) {\n let atEnd = $to.parentOffset == $to.parent.content.size;\n let tr = state.tr;\n if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)\n tr.deleteSelection();\n let deflt = $from.depth == 0 ? null : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)));\n let splitType = splitNode && splitNode($to.parent, atEnd, $from);\n let types = splitType ? [splitType] : atEnd && deflt ? [{ type: deflt }] : undefined;\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types);\n if (!types && !can && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)) {\n if (deflt)\n types = [{ type: deflt }];\n can = true;\n }\n if (can) {\n tr.split(tr.mapping.map($from.pos), 1, types);\n if (!atEnd && !$from.parentOffset && $from.parent.type != deflt) {\n let first = tr.mapping.map($from.before()), $first = tr.doc.resolve(first);\n if (deflt && $from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt))\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt);\n }\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\n/**\nSplit the parent block of the selection. If the selection is a text\nselection, also delete its content.\n*/\nconst splitBlock = splitBlockAs();\n/**\nActs like [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock), but without\nresetting the set of active marks at the cursor.\n*/\nconst splitBlockKeepMarks = (state, dispatch) => {\n return splitBlock(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n};\n/**\nMove the selection to the node wrapping the current selection, if\nany. (Will not select the document node.)\n*/\nconst selectParentNode = (state, dispatch) => {\n let { $from, to } = state.selection, pos;\n let same = $from.sharedDepth(to);\n if (same == 0)\n return false;\n pos = $from.before(same);\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, pos)));\n return true;\n};\n/**\nSelect the whole document.\n*/\nconst selectAll = (state, dispatch) => {\n if (dispatch)\n dispatch(state.tr.setSelection(new AllSelection(state.doc)));\n return true;\n};\nfunction joinMaybeClear(state, $pos, dispatch) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type))\n return false;\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch)\n dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());\n return true;\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))\n return false;\n if (dispatch)\n dispatch(state.tr\n .clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount))\n .join($pos.pos)\n .scrollIntoView());\n return true;\n}\nfunction deleteBarrier(state, $cut, dispatch, dir) {\n let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n let isolated = before.type.spec.isolating || after.type.spec.isolating;\n if (!isolated && joinMaybeClear(state, $cut, dispatch))\n return true;\n let canDelAfter = !isolated && $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n let end = $cut.pos + after.nodeSize, wrap = Fragment.empty;\n for (let i = conn.length - 1; i >= 0; i--)\n wrap = Fragment.from(conn[i].create(null, wrap));\n wrap = Fragment.from(before.copy(wrap));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap, 1, 0), conn.length, true));\n let joinAt = end + 2 * conn.length;\n if (canJoin(tr.doc, joinAt))\n tr.join(joinAt);\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let selAfter = after.type.spec.isolating || (dir > 0 && isolated) ? null : Selection.findFrom($cut, 1);\n let range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && liftTarget(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n let at = before, wrap = [];\n for (;;) {\n wrap.push(at);\n if (at.isTextblock)\n break;\n at = at.lastChild;\n }\n let afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild)\n afterDepth++;\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n let end = Fragment.empty;\n for (let i = wrap.length - 1; i >= 0; i--)\n end = Fragment.from(wrap[i].copy(end));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - wrap.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap.length, 0), 0, true));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n}\nfunction selectTextblockSide(side) {\n return function (state, dispatch) {\n let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n let depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth)\n return false;\n depth--;\n }\n if (!$pos.node(depth).isTextblock)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(TextSelection.create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));\n return true;\n };\n}\n/**\nMoves the cursor to the start of current text block.\n*/\nconst selectTextblockStart = selectTextblockSide(-1);\n/**\nMoves the cursor to the end of current text block.\n*/\nconst selectTextblockEnd = selectTextblockSide(1);\n// Parameterized commands\n/**\nWrap the selection in a node of the given type with the given\nattributes.\n*/\nfunction wrapIn(nodeType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping)\n return false;\n if (dispatch)\n dispatch(state.tr.wrap(range, wrapping).scrollIntoView());\n return true;\n };\n}\n/**\nReturns a command that tries to set the selected textblocks to the\ngiven node type with the given attributes.\n*/\nfunction setBlockType(nodeType, attrs = null) {\n return function (state, dispatch) {\n let applicable = false;\n for (let i = 0; i < state.selection.ranges.length && !applicable; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (applicable)\n return false;\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs))\n return;\n if (node.type == nodeType) {\n applicable = true;\n }\n else {\n let $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n }\n if (!applicable)\n return false;\n if (dispatch) {\n let tr = state.tr;\n for (let i = 0; i < state.selection.ranges.length; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n tr.setBlockType(from, to, nodeType, attrs);\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\nfunction markApplies(doc, ranges, type, enterAtoms) {\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n let can = $from.depth == 0 ? doc.inlineContent && doc.type.allowsMarkType(type) : false;\n doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (can || !enterAtoms && node.isAtom && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos)\n return false;\n can = node.inlineContent && node.type.allowsMarkType(type);\n });\n if (can)\n return true;\n }\n return false;\n}\nfunction removeInlineAtoms(ranges) {\n let result = [];\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n $from.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.isAtom && node.content.size && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos) {\n if (pos + 1 > $from.pos)\n result.push(new SelectionRange($from, $from.doc.resolve(pos + 1)));\n $from = $from.doc.resolve(pos + 1 + node.content.size);\n return false;\n }\n });\n if ($from.pos < $to.pos)\n result.push(new SelectionRange($from, $to));\n }\n return result;\n}\n/**\nCreate a command function that toggles the given mark with the\ngiven attributes. Will return `false` when the current selection\ndoesn't support that mark. This will remove the mark if any marks\nof that type exist in the selection, or add it otherwise. If the\nselection is empty, this applies to the [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks) instead of a range of the\ndocument.\n*/\nfunction toggleMark(markType, attrs = null, options) {\n let removeWhenPresent = (options && options.removeWhenPresent) !== false;\n let enterAtoms = (options && options.enterInlineAtoms) !== false;\n return function (state, dispatch) {\n let { empty, $cursor, ranges } = state.selection;\n if ((empty && !$cursor) || !markApplies(state.doc, ranges, markType, enterAtoms))\n return false;\n if (dispatch) {\n if ($cursor) {\n if (markType.isInSet(state.storedMarks || $cursor.marks()))\n dispatch(state.tr.removeStoredMark(markType));\n else\n dispatch(state.tr.addStoredMark(markType.create(attrs)));\n }\n else {\n let add, tr = state.tr;\n if (!enterAtoms)\n ranges = removeInlineAtoms(ranges);\n if (removeWhenPresent) {\n add = !ranges.some(r => state.doc.rangeHasMark(r.$from.pos, r.$to.pos, markType));\n }\n else {\n add = !ranges.every(r => {\n let missing = false;\n tr.doc.nodesBetween(r.$from.pos, r.$to.pos, (node, pos, parent) => {\n if (missing)\n return false;\n missing = !markType.isInSet(node.marks) && !!parent && parent.type.allowsMarkType(markType) &&\n !(node.isText && /^\\s*$/.test(node.textBetween(Math.max(0, r.$from.pos - pos), Math.min(node.nodeSize, r.$to.pos - pos))));\n });\n return !missing;\n });\n }\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n if (!add) {\n tr.removeMark($from.pos, $to.pos, markType);\n }\n else {\n let from = $from.pos, to = $to.pos, start = $from.nodeAfter, end = $to.nodeBefore;\n let spaceStart = start && start.isText ? /^\\s*/.exec(start.text)[0].length : 0;\n let spaceEnd = end && end.isText ? /\\s*$/.exec(end.text)[0].length : 0;\n if (from + spaceStart < to) {\n from += spaceStart;\n to -= spaceEnd;\n }\n tr.addMark(from, to, markType.create(attrs));\n }\n }\n dispatch(tr.scrollIntoView());\n }\n }\n return true;\n };\n}\nfunction wrapDispatchForJoin(dispatch, isJoinable) {\n return (tr) => {\n if (!tr.isGeneric)\n return dispatch(tr);\n let ranges = [];\n for (let i = 0; i < tr.mapping.maps.length; i++) {\n let map = tr.mapping.maps[i];\n for (let j = 0; j < ranges.length; j++)\n ranges[j] = map.map(ranges[j]);\n map.forEach((_s, _e, from, to) => ranges.push(from, to));\n }\n // Figure out which joinable points exist inside those ranges,\n // by checking all node boundaries in their parent nodes.\n let joinable = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = ranges[i], to = ranges[i + 1];\n let $from = tr.doc.resolve(from), depth = $from.sharedDepth(to), parent = $from.node(depth);\n for (let index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {\n let after = parent.maybeChild(index);\n if (!after)\n break;\n if (index && joinable.indexOf(pos) == -1) {\n let before = parent.child(index - 1);\n if (before.type == after.type && isJoinable(before, after))\n joinable.push(pos);\n }\n pos += after.nodeSize;\n }\n }\n // Join the joinable points\n joinable.sort((a, b) => a - b);\n for (let i = joinable.length - 1; i >= 0; i--) {\n if (canJoin(tr.doc, joinable[i]))\n tr.join(joinable[i]);\n }\n dispatch(tr);\n };\n}\n/**\nWrap a command so that, when it produces a transform that causes\ntwo joinable nodes to end up next to each other, those are joined.\nNodes are considered joinable when they are of the same type and\nwhen the `isJoinable` predicate returns true for them or, if an\narray of strings was passed, if their node type name is in that\narray.\n*/\nfunction autoJoin(command, isJoinable) {\n let canJoin = Array.isArray(isJoinable) ? (node) => isJoinable.indexOf(node.type.name) > -1\n : isJoinable;\n return (state, dispatch, view) => command(state, dispatch && wrapDispatchForJoin(dispatch, canJoin), view);\n}\n/**\nCombine a number of command functions into a single function (which\ncalls them one by one until one returns true).\n*/\nfunction chainCommands(...commands) {\n return function (state, dispatch, view) {\n for (let i = 0; i < commands.length; i++)\n if (commands[i](state, dispatch, view))\n return true;\n return false;\n };\n}\nlet backspace = chainCommands(deleteSelection, joinBackward, selectNodeBackward);\nlet del = chainCommands(deleteSelection, joinForward, selectNodeForward);\n/**\nA basic keymap containing bindings not specific to any schema.\nBinds the following keys (when multiple commands are listed, they\nare chained with [`chainCommands`](https://prosemirror.net/docs/ref/#commands.chainCommands)):\n\n* **Enter** to `newlineInCode`, `createParagraphNear`, `liftEmptyBlock`, `splitBlock`\n* **Mod-Enter** to `exitCode`\n* **Backspace** and **Mod-Backspace** to `deleteSelection`, `joinBackward`, `selectNodeBackward`\n* **Delete** and **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-a** to `selectAll`\n*/\nconst pcBaseKeymap = {\n \"Enter\": chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlock),\n \"Mod-Enter\": exitCode,\n \"Backspace\": backspace,\n \"Mod-Backspace\": backspace,\n \"Shift-Backspace\": backspace,\n \"Delete\": del,\n \"Mod-Delete\": del,\n \"Mod-a\": selectAll\n};\n/**\nA copy of `pcBaseKeymap` that also binds **Ctrl-h** like Backspace,\n**Ctrl-d** like Delete, **Alt-Backspace** like Ctrl-Backspace, and\n**Ctrl-Alt-Backspace**, **Alt-Delete**, and **Alt-d** like\nCtrl-Delete.\n*/\nconst macBaseKeymap = {\n \"Ctrl-h\": pcBaseKeymap[\"Backspace\"],\n \"Alt-Backspace\": pcBaseKeymap[\"Mod-Backspace\"],\n \"Ctrl-d\": pcBaseKeymap[\"Delete\"],\n \"Ctrl-Alt-Backspace\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-Delete\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-d\": pcBaseKeymap[\"Mod-Delete\"],\n \"Ctrl-a\": selectTextblockStart,\n \"Ctrl-e\": selectTextblockEnd\n};\nfor (let key in pcBaseKeymap)\n macBaseKeymap[key] = pcBaseKeymap[key];\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n // @ts-ignore\n : typeof os != \"undefined\" && os.platform ? os.platform() == \"darwin\" : false;\n/**\nDepending on the detected platform, this will hold\n[`pcBasekeymap`](https://prosemirror.net/docs/ref/#commands.pcBaseKeymap) or\n[`macBaseKeymap`](https://prosemirror.net/docs/ref/#commands.macBaseKeymap).\n*/\nconst baseKeymap = mac ? macBaseKeymap : pcBaseKeymap;\n\nexport { autoJoin, baseKeymap, chainCommands, createParagraphNear, deleteSelection, exitCode, joinBackward, joinDown, joinForward, joinTextblockBackward, joinTextblockForward, joinUp, lift, liftEmptyBlock, macBaseKeymap, newlineInCode, pcBaseKeymap, selectAll, selectNodeBackward, selectNodeForward, selectParentNode, selectTextblockEnd, selectTextblockStart, setBlockType, splitBlock, splitBlockAs, splitBlockKeepMarks, toggleMark, wrapIn };\n","import { findWrapping, ReplaceAroundStep, canSplit, liftTarget, canJoin } from 'prosemirror-transform';\nimport { NodeRange, Fragment, Slice } from 'prosemirror-model';\nimport { Selection } from 'prosemirror-state';\n\nconst olDOM = [\"ol\", 0], ulDOM = [\"ul\", 0], liDOM = [\"li\", 0];\n/**\nAn ordered list [node spec](https://prosemirror.net/docs/ref/#model.NodeSpec). Has a single\nattribute, `order`, which determines the number at which the list\nstarts counting, and defaults to 1. Represented as an `
    `\nelement.\n*/\nconst orderedList = {\n attrs: { order: { default: 1, validate: \"number\" } },\n parseDOM: [{ tag: \"ol\", getAttrs(dom) {\n return { order: dom.hasAttribute(\"start\") ? +dom.getAttribute(\"start\") : 1 };\n } }],\n toDOM(node) {\n return node.attrs.order == 1 ? olDOM : [\"ol\", { start: node.attrs.order }, 0];\n }\n};\n/**\nA bullet list node spec, represented in the DOM as `
      `.\n*/\nconst bulletList = {\n parseDOM: [{ tag: \"ul\" }],\n toDOM() { return ulDOM; }\n};\n/**\nA list item (`
    • `) spec.\n*/\nconst listItem = {\n parseDOM: [{ tag: \"li\" }],\n toDOM() { return liDOM; },\n defining: true\n};\nfunction add(obj, props) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n for (let prop in props)\n copy[prop] = props[prop];\n return copy;\n}\n/**\nConvenience function for adding list-related node types to a map\nspecifying the nodes for a schema. Adds\n[`orderedList`](https://prosemirror.net/docs/ref/#schema-list.orderedList) as `\"ordered_list\"`,\n[`bulletList`](https://prosemirror.net/docs/ref/#schema-list.bulletList) as `\"bullet_list\"`, and\n[`listItem`](https://prosemirror.net/docs/ref/#schema-list.listItem) as `\"list_item\"`.\n\n`itemContent` determines the content expression for the list items.\nIf you want the commands defined in this module to apply to your\nlist structure, it should have a shape like `\"paragraph block*\"` or\n`\"paragraph (ordered_list | bullet_list)*\"`. `listGroup` can be\ngiven to assign a group name to the list node types, for example\n`\"block\"`.\n*/\nfunction addListNodes(nodes, itemContent, listGroup) {\n return nodes.append({\n ordered_list: add(orderedList, { content: \"list_item+\", group: listGroup }),\n bullet_list: add(bulletList, { content: \"list_item+\", group: listGroup }),\n list_item: add(listItem, { content: itemContent })\n });\n}\n/**\nReturns a command function that wraps the selection in a list with\nthe given type an attributes. If `dispatch` is null, only return a\nvalue to indicate whether this is possible, but don't actually\nperform the change.\n*/\nfunction wrapInList(listType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), doJoin = false, outerRange = range;\n if (!range)\n return false;\n // This is at the top of an existing list item\n if (range.depth >= 2 && $from.node(range.depth - 1).type.compatibleContent(listType) && range.startIndex == 0) {\n // Don't do anything if this is the top of the list\n if ($from.index(range.depth - 1) == 0)\n return false;\n let $insert = state.doc.resolve(range.start - 2);\n outerRange = new NodeRange($insert, $insert, range.depth);\n if (range.endIndex < range.parent.childCount)\n range = new NodeRange($from, state.doc.resolve($to.end(range.depth)), range.depth);\n doJoin = true;\n }\n let wrap = findWrapping(outerRange, listType, attrs, range);\n if (!wrap)\n return false;\n if (dispatch)\n dispatch(doWrapInList(state.tr, range, wrap, doJoin, listType).scrollIntoView());\n return true;\n };\n}\nfunction doWrapInList(tr, range, wrappers, joinBefore, listType) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--)\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n tr.step(new ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end, new Slice(content, 0, 0), wrappers.length, true));\n let found = 0;\n for (let i = 0; i < wrappers.length; i++)\n if (wrappers[i].type == listType)\n found = i + 1;\n let splitDepth = wrappers.length - found;\n let splitPos = range.start + wrappers.length - (joinBefore ? 2 : 0), parent = range.parent;\n for (let i = range.startIndex, e = range.endIndex, first = true; i < e; i++, first = false) {\n if (!first && canSplit(tr.doc, splitPos, splitDepth)) {\n tr.split(splitPos, splitDepth);\n splitPos += 2 * splitDepth;\n }\n splitPos += parent.child(i).nodeSize;\n }\n return tr;\n}\n/**\nBuild a command that splits a non-empty textblock at the top level\nof a list item by also splitting that list item.\n*/\nfunction splitListItem(itemType, itemAttrs) {\n return function (state, dispatch) {\n let { $from, $to, node } = state.selection;\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to))\n return false;\n let grandParent = $from.node(-1);\n if (grandParent.type != itemType)\n return false;\n if ($from.parent.content.size == 0 && $from.node(-1).childCount == $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if ($from.depth == 3 || $from.node(-3).type != itemType ||\n $from.index(-2) != $from.node(-2).childCount - 1)\n return false;\n if (dispatch) {\n let wrap = Fragment.empty;\n let depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d--)\n wrap = Fragment.from($from.node(d).copy(wrap));\n let depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1\n : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;\n // Add a second list item with an empty default start node\n wrap = wrap.append(Fragment.from(itemType.createAndFill()));\n let start = $from.before($from.depth - (depthBefore - 1));\n let tr = state.tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0));\n let sel = -1;\n tr.doc.nodesBetween(start, tr.doc.content.size, (node, pos) => {\n if (sel > -1)\n return false;\n if (node.isTextblock && node.content.size == 0)\n sel = pos + 1;\n });\n if (sel > -1)\n tr.setSelection(Selection.near(tr.doc.resolve(sel)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let nextType = $to.pos == $from.end() ? grandParent.contentMatchAt(0).defaultType : null;\n let tr = state.tr.delete($from.pos, $to.pos);\n let types = nextType ? [itemAttrs ? { type: itemType, attrs: itemAttrs } : null, { type: nextType }] : undefined;\n if (!canSplit(tr.doc, $from.pos, 2, types))\n return false;\n if (dispatch)\n dispatch(tr.split($from.pos, 2, types).scrollIntoView());\n return true;\n };\n}\n/**\nActs like [`splitListItem`](https://prosemirror.net/docs/ref/#schema-list.splitListItem), but\nwithout resetting the set of active marks at the cursor.\n*/\nfunction splitListItemKeepMarks(itemType, itemAttrs) {\n let split = splitListItem(itemType, itemAttrs);\n return (state, dispatch) => {\n return split(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n };\n}\n/**\nCreate a command to lift the list item around the selection up into\na wrapping list.\n*/\nfunction liftListItem(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n if (!dispatch)\n return true;\n if ($from.node(range.depth - 1).type == itemType) // Inside a parent list\n return liftToOuterList(state, dispatch, itemType, range);\n else // Outer list node\n return liftOutOfList(state, dispatch, range);\n };\n}\nfunction liftToOuterList(state, dispatch, itemType, range) {\n let tr = state.tr, end = range.end, endOfList = range.$to.end(range.depth);\n if (end < endOfList) {\n // There are siblings after the lifted items, which must become\n // children of the last item\n tr.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice(Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));\n range = new NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);\n }\n const target = liftTarget(range);\n if (target == null)\n return false;\n tr.lift(range, target);\n let after = tr.mapping.map(end, -1) - 1;\n if (canJoin(tr.doc, after))\n tr.join(after);\n dispatch(tr.scrollIntoView());\n return true;\n}\nfunction liftOutOfList(state, dispatch, range) {\n let tr = state.tr, list = range.parent;\n // Merge the list items into a single big item\n for (let pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) {\n pos -= list.child(i).nodeSize;\n tr.delete(pos - 1, pos + 1);\n }\n let $start = tr.doc.resolve(range.start), item = $start.nodeAfter;\n if (tr.mapping.map(range.end) != range.start + $start.nodeAfter.nodeSize)\n return false;\n let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;\n let parent = $start.node(-1), indexBefore = $start.index(-1);\n if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? Fragment.empty : Fragment.from(list))))\n return false;\n let start = $start.pos, end = start + item.nodeSize;\n // Strip off the surrounding list. At the sides where we're not at\n // the end of the list, the existing list is closed. At sides where\n // this is the end, it is overwritten to its end.\n tr.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice((atStart ? Fragment.empty : Fragment.from(list.copy(Fragment.empty)))\n .append(atEnd ? Fragment.empty : Fragment.from(list.copy(Fragment.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));\n dispatch(tr.scrollIntoView());\n return true;\n}\n/**\nCreate a command to sink the list item around the selection down\ninto an inner list.\n*/\nfunction sinkListItem(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n let startIndex = range.startIndex;\n if (startIndex == 0)\n return false;\n let parent = range.parent, nodeBefore = parent.child(startIndex - 1);\n if (nodeBefore.type != itemType)\n return false;\n if (dispatch) {\n let nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;\n let inner = Fragment.from(nestedBefore ? itemType.create() : null);\n let slice = new Slice(Fragment.from(itemType.create(null, Fragment.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);\n let before = range.start, after = range.end;\n dispatch(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice, 1, true))\n .scrollIntoView());\n }\n return true;\n };\n}\n\nexport { addListNodes, bulletList, liftListItem, listItem, orderedList, sinkListItem, splitListItem, splitListItemKeepMarks, wrapInList };\n","import { Plugin, PluginKey, TextSelection, Selection, NodeSelection, EditorState } from '@tiptap/pm/state';\nimport { EditorView } from '@tiptap/pm/view';\nimport { keymap } from '@tiptap/pm/keymap';\nimport { Schema, Fragment, DOMParser, DOMSerializer, Node as Node$1, Slice } from '@tiptap/pm/model';\nimport { liftTarget, ReplaceStep, ReplaceAroundStep, joinPoint, Transform, canSplit, canJoin, findWrapping } from '@tiptap/pm/transform';\nimport { createParagraphNear as createParagraphNear$1, deleteSelection as deleteSelection$1, exitCode as exitCode$1, joinUp as joinUp$1, joinDown as joinDown$1, joinBackward as joinBackward$1, joinForward as joinForward$1, joinTextblockBackward as joinTextblockBackward$1, joinTextblockForward as joinTextblockForward$1, lift as lift$1, liftEmptyBlock as liftEmptyBlock$1, newlineInCode as newlineInCode$1, selectNodeBackward as selectNodeBackward$1, selectNodeForward as selectNodeForward$1, selectParentNode as selectParentNode$1, selectTextblockEnd as selectTextblockEnd$1, selectTextblockStart as selectTextblockStart$1, setBlockType, wrapIn as wrapIn$1 } from '@tiptap/pm/commands';\nimport { liftListItem as liftListItem$1, sinkListItem as sinkListItem$1, wrapInList as wrapInList$1 } from '@tiptap/pm/schema-list';\n\n/**\n * Takes a Transaction & Editor State and turns it into a chainable state object\n * @param config The transaction and state to create the chainable state from\n * @returns A chainable Editor state object\n */\nfunction createChainableState(config) {\n const { state, transaction } = config;\n let { selection } = transaction;\n let { doc } = transaction;\n let { storedMarks } = transaction;\n return {\n ...state,\n apply: state.apply.bind(state),\n applyTransaction: state.applyTransaction.bind(state),\n plugins: state.plugins,\n schema: state.schema,\n reconfigure: state.reconfigure.bind(state),\n toJSON: state.toJSON.bind(state),\n get storedMarks() {\n return storedMarks;\n },\n get selection() {\n return selection;\n },\n get doc() {\n return doc;\n },\n get tr() {\n selection = transaction.selection;\n doc = transaction.doc;\n storedMarks = transaction.storedMarks;\n return transaction;\n },\n };\n}\n\nclass CommandManager {\n constructor(props) {\n this.editor = props.editor;\n this.rawCommands = this.editor.extensionManager.commands;\n this.customState = props.state;\n }\n get hasCustomState() {\n return !!this.customState;\n }\n get state() {\n return this.customState || this.editor.state;\n }\n get commands() {\n const { rawCommands, editor, state } = this;\n const { view } = editor;\n const { tr } = state;\n const props = this.buildProps(tr);\n return Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\n const method = (...args) => {\n const callback = command(...args)(props);\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\n view.dispatch(tr);\n }\n return callback;\n };\n return [name, method];\n }));\n }\n get chain() {\n return () => this.createChain();\n }\n get can() {\n return () => this.createCan();\n }\n createChain(startTr, shouldDispatch = true) {\n const { rawCommands, editor, state } = this;\n const { view } = editor;\n const callbacks = [];\n const hasStartTransaction = !!startTr;\n const tr = startTr || state.tr;\n const run = () => {\n if (!hasStartTransaction\n && shouldDispatch\n && !tr.getMeta('preventDispatch')\n && !this.hasCustomState) {\n view.dispatch(tr);\n }\n return callbacks.every(callback => callback === true);\n };\n const chain = {\n ...Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\n const chainedCommand = (...args) => {\n const props = this.buildProps(tr, shouldDispatch);\n const callback = command(...args)(props);\n callbacks.push(callback);\n return chain;\n };\n return [name, chainedCommand];\n })),\n run,\n };\n return chain;\n }\n createCan(startTr) {\n const { rawCommands, state } = this;\n const dispatch = false;\n const tr = startTr || state.tr;\n const props = this.buildProps(tr, dispatch);\n const formattedCommands = Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args) => command(...args)({ ...props, dispatch: undefined })];\n }));\n return {\n ...formattedCommands,\n chain: () => this.createChain(tr, dispatch),\n };\n }\n buildProps(tr, shouldDispatch = true) {\n const { rawCommands, editor, state } = this;\n const { view } = editor;\n const props = {\n tr,\n editor,\n view,\n state: createChainableState({\n state,\n transaction: tr,\n }),\n dispatch: shouldDispatch ? () => undefined : undefined,\n chain: () => this.createChain(tr, shouldDispatch),\n can: () => this.createCan(tr),\n get commands() {\n return Object.fromEntries(Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args) => command(...args)(props)];\n }));\n },\n };\n return props;\n }\n}\n\nclass EventEmitter {\n constructor() {\n this.callbacks = {};\n }\n on(event, fn) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n this.callbacks[event].push(fn);\n return this;\n }\n emit(event, ...args) {\n const callbacks = this.callbacks[event];\n if (callbacks) {\n callbacks.forEach(callback => callback.apply(this, args));\n }\n return this;\n }\n off(event, fn) {\n const callbacks = this.callbacks[event];\n if (callbacks) {\n if (fn) {\n this.callbacks[event] = callbacks.filter(callback => callback !== fn);\n }\n else {\n delete this.callbacks[event];\n }\n }\n return this;\n }\n removeAllListeners() {\n this.callbacks = {};\n }\n}\n\n/**\n * Returns a field from an extension\n * @param extension The Tiptap extension\n * @param field The field, for example `renderHTML` or `priority`\n * @param context The context object that should be passed as `this` into the function\n * @returns The field value\n */\nfunction getExtensionField(extension, field, context) {\n if (extension.config[field] === undefined && extension.parent) {\n return getExtensionField(extension.parent, field, context);\n }\n if (typeof extension.config[field] === 'function') {\n const value = extension.config[field].bind({\n ...context,\n parent: extension.parent\n ? getExtensionField(extension.parent, field, context)\n : null,\n });\n return value;\n }\n return extension.config[field];\n}\n\nfunction splitExtensions(extensions) {\n const baseExtensions = extensions.filter(extension => extension.type === 'extension');\n const nodeExtensions = extensions.filter(extension => extension.type === 'node');\n const markExtensions = extensions.filter(extension => extension.type === 'mark');\n return {\n baseExtensions,\n nodeExtensions,\n markExtensions,\n };\n}\n\n/**\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\n * @param extensions List of extensions\n */\nfunction getAttributesFromExtensions(extensions) {\n const extensionAttributes = [];\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions];\n const defaultAttribute = {\n default: null,\n rendered: true,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: true,\n isRequired: false,\n };\n extensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n extensions: nodeAndMarkExtensions,\n };\n const addGlobalAttributes = getExtensionField(extension, 'addGlobalAttributes', context);\n if (!addGlobalAttributes) {\n return;\n }\n const globalAttributes = addGlobalAttributes();\n globalAttributes.forEach(globalAttribute => {\n globalAttribute.types.forEach(type => {\n Object\n .entries(globalAttribute.attributes)\n .forEach(([name, attribute]) => {\n extensionAttributes.push({\n type,\n name,\n attribute: {\n ...defaultAttribute,\n ...attribute,\n },\n });\n });\n });\n });\n });\n nodeAndMarkExtensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n };\n const addAttributes = getExtensionField(extension, 'addAttributes', context);\n if (!addAttributes) {\n return;\n }\n // TODO: remove `as Attributes`\n const attributes = addAttributes();\n Object\n .entries(attributes)\n .forEach(([name, attribute]) => {\n const mergedAttr = {\n ...defaultAttribute,\n ...attribute,\n };\n if (typeof (mergedAttr === null || mergedAttr === void 0 ? void 0 : mergedAttr.default) === 'function') {\n mergedAttr.default = mergedAttr.default();\n }\n if ((mergedAttr === null || mergedAttr === void 0 ? void 0 : mergedAttr.isRequired) && (mergedAttr === null || mergedAttr === void 0 ? void 0 : mergedAttr.default) === undefined) {\n delete mergedAttr.default;\n }\n extensionAttributes.push({\n type: extension.name,\n name,\n attribute: mergedAttr,\n });\n });\n });\n return extensionAttributes;\n}\n\nfunction getNodeType(nameOrType, schema) {\n if (typeof nameOrType === 'string') {\n if (!schema.nodes[nameOrType]) {\n throw Error(`There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`);\n }\n return schema.nodes[nameOrType];\n }\n return nameOrType;\n}\n\nfunction mergeAttributes(...objects) {\n return objects\n .filter(item => !!item)\n .reduce((items, item) => {\n const mergedAttributes = { ...items };\n Object.entries(item).forEach(([key, value]) => {\n const exists = mergedAttributes[key];\n if (!exists) {\n mergedAttributes[key] = value;\n return;\n }\n if (key === 'class') {\n const valueClasses = value ? value.split(' ') : [];\n const existingClasses = mergedAttributes[key] ? mergedAttributes[key].split(' ') : [];\n const insertClasses = valueClasses.filter(valueClass => !existingClasses.includes(valueClass));\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ');\n }\n else if (key === 'style') {\n const newStyles = value ? value.split(';').map((style) => style.trim()).filter(Boolean) : [];\n const existingStyles = mergedAttributes[key] ? mergedAttributes[key].split(';').map((style) => style.trim()).filter(Boolean) : [];\n const styleMap = new Map();\n existingStyles.forEach(style => {\n const [property, val] = style.split(':').map(part => part.trim());\n styleMap.set(property, val);\n });\n newStyles.forEach(style => {\n const [property, val] = style.split(':').map(part => part.trim());\n styleMap.set(property, val);\n });\n mergedAttributes[key] = Array.from(styleMap.entries()).map(([property, val]) => `${property}: ${val}`).join('; ');\n }\n else {\n mergedAttributes[key] = value;\n }\n });\n return mergedAttributes;\n }, {});\n}\n\nfunction getRenderedAttributes(nodeOrMark, extensionAttributes) {\n return extensionAttributes\n .filter(attribute => attribute.type === nodeOrMark.type.name)\n .filter(item => item.attribute.rendered)\n .map(item => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: nodeOrMark.attrs[item.name],\n };\n }\n return item.attribute.renderHTML(nodeOrMark.attrs) || {};\n })\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {});\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\n/**\n * Optionally calls `value` as a function.\n * Otherwise it is returned directly.\n * @param value Function or any value.\n * @param context Optional context to bind to function.\n * @param props Optional props to pass to function.\n */\nfunction callOrReturn(value, context = undefined, ...props) {\n if (isFunction(value)) {\n if (context) {\n return value.bind(context)(...props);\n }\n return value(...props);\n }\n return value;\n}\n\nfunction isEmptyObject(value = {}) {\n return Object.keys(value).length === 0 && value.constructor === Object;\n}\n\nfunction fromString(value) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\n return Number(value);\n }\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n return value;\n}\n\n/**\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\n * Cancels when `getAttrs` returned `false`.\n * @param parseRule ProseMirror ParseRule\n * @param extensionAttributes List of attributes to inject\n */\nfunction injectExtensionAttributesToParseRule(parseRule, extensionAttributes) {\n if ('style' in parseRule) {\n return parseRule;\n }\n return {\n ...parseRule,\n getAttrs: (node) => {\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs;\n if (oldAttributes === false) {\n return false;\n }\n const newAttributes = extensionAttributes.reduce((items, item) => {\n const value = item.attribute.parseHTML\n ? item.attribute.parseHTML(node)\n : fromString((node).getAttribute(item.name));\n if (value === null || value === undefined) {\n return items;\n }\n return {\n ...items,\n [item.name]: value,\n };\n }, {});\n return { ...oldAttributes, ...newAttributes };\n },\n };\n}\n\nfunction cleanUpSchemaItem(data) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(data).filter(([key, value]) => {\n if (key === 'attrs' && isEmptyObject(value)) {\n return false;\n }\n return value !== null && value !== undefined;\n }));\n}\n/**\n * Creates a new Prosemirror schema based on the given extensions.\n * @param extensions An array of Tiptap extensions\n * @param editor The editor instance\n * @returns A Prosemirror schema\n */\nfunction getSchemaByResolvedExtensions(extensions, editor) {\n var _a;\n const allAttributes = getAttributesFromExtensions(extensions);\n const { nodeExtensions, markExtensions } = splitExtensions(extensions);\n const topNode = (_a = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))) === null || _a === void 0 ? void 0 : _a.name;\n const nodes = Object.fromEntries(nodeExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(attribute => attribute.type === extension.name);\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n };\n const extraNodeFields = extensions.reduce((fields, e) => {\n const extendNodeSchema = getExtensionField(e, 'extendNodeSchema', context);\n return {\n ...fields,\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\n };\n }, {});\n const schema = cleanUpSchemaItem({\n ...extraNodeFields,\n content: callOrReturn(getExtensionField(extension, 'content', context)),\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\n selectable: callOrReturn(getExtensionField(extension, 'selectable', context)),\n draggable: callOrReturn(getExtensionField(extension, 'draggable', context)),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n whitespace: callOrReturn(getExtensionField(extension, 'whitespace', context)),\n defining: callOrReturn(getExtensionField(extension, 'defining', context)),\n isolating: callOrReturn(getExtensionField(extension, 'isolating', context)),\n attrs: Object.fromEntries(extensionAttributes.map(extensionAttribute => {\n var _a;\n return [extensionAttribute.name, { default: (_a = extensionAttribute === null || extensionAttribute === void 0 ? void 0 : extensionAttribute.attribute) === null || _a === void 0 ? void 0 : _a.default }];\n })),\n });\n const parseHTML = callOrReturn(getExtensionField(extension, 'parseHTML', context));\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes));\n }\n const renderHTML = getExtensionField(extension, 'renderHTML', context);\n if (renderHTML) {\n schema.toDOM = node => renderHTML({\n node,\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\n });\n }\n const renderText = getExtensionField(extension, 'renderText', context);\n if (renderText) {\n schema.toText = renderText;\n }\n return [extension.name, schema];\n }));\n const marks = Object.fromEntries(markExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(attribute => attribute.type === extension.name);\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n };\n const extraMarkFields = extensions.reduce((fields, e) => {\n const extendMarkSchema = getExtensionField(e, 'extendMarkSchema', context);\n return {\n ...fields,\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\n };\n }, {});\n const schema = cleanUpSchemaItem({\n ...extraMarkFields,\n inclusive: callOrReturn(getExtensionField(extension, 'inclusive', context)),\n excludes: callOrReturn(getExtensionField(extension, 'excludes', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n spanning: callOrReturn(getExtensionField(extension, 'spanning', context)),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n attrs: Object.fromEntries(extensionAttributes.map(extensionAttribute => {\n var _a;\n return [extensionAttribute.name, { default: (_a = extensionAttribute === null || extensionAttribute === void 0 ? void 0 : extensionAttribute.attribute) === null || _a === void 0 ? void 0 : _a.default }];\n })),\n });\n const parseHTML = callOrReturn(getExtensionField(extension, 'parseHTML', context));\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes));\n }\n const renderHTML = getExtensionField(extension, 'renderHTML', context);\n if (renderHTML) {\n schema.toDOM = mark => renderHTML({\n mark,\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\n });\n }\n return [extension.name, schema];\n }));\n return new Schema({\n topNode,\n nodes,\n marks,\n });\n}\n\n/**\n * Tries to get a node or mark type by its name.\n * @param name The name of the node or mark type\n * @param schema The Prosemiror schema to search in\n * @returns The node or mark type, or null if it doesn't exist\n */\nfunction getSchemaTypeByName(name, schema) {\n return schema.nodes[name] || schema.marks[name] || null;\n}\n\nfunction isExtensionRulesEnabled(extension, enabled) {\n if (Array.isArray(enabled)) {\n return enabled.some(enabledExtension => {\n const name = typeof enabledExtension === 'string'\n ? enabledExtension\n : enabledExtension.name;\n return name === extension.name;\n });\n }\n return enabled;\n}\n\n/**\n * Returns the text content of a resolved prosemirror position\n * @param $from The resolved position to get the text content from\n * @param maxMatch The maximum number of characters to match\n * @returns The text content\n */\nconst getTextContentFromNodes = ($from, maxMatch = 500) => {\n let textBefore = '';\n const sliceEndPos = $from.parentOffset;\n $from.parent.nodesBetween(Math.max(0, sliceEndPos - maxMatch), sliceEndPos, (node, pos, parent, index) => {\n var _a, _b;\n const chunk = ((_b = (_a = node.type.spec).toText) === null || _b === void 0 ? void 0 : _b.call(_a, {\n node,\n pos,\n parent,\n index,\n }))\n || node.textContent\n || '%leaf%';\n textBefore += node.isAtom && !node.isText ? chunk : chunk.slice(0, Math.max(0, sliceEndPos - pos));\n });\n return textBefore;\n};\n\nfunction isRegExp(value) {\n return Object.prototype.toString.call(value) === '[object RegExp]';\n}\n\nclass InputRule {\n constructor(config) {\n this.find = config.find;\n this.handler = config.handler;\n }\n}\nconst inputRuleMatcherHandler = (text, find) => {\n if (isRegExp(find)) {\n return find.exec(text);\n }\n const inputRuleMatch = find(text);\n if (!inputRuleMatch) {\n return null;\n }\n const result = [inputRuleMatch.text];\n result.index = inputRuleMatch.index;\n result.input = text;\n result.data = inputRuleMatch.data;\n if (inputRuleMatch.replaceWith) {\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\n console.warn('[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".');\n }\n result.push(inputRuleMatch.replaceWith);\n }\n return result;\n};\nfunction run$1(config) {\n var _a;\n const { editor, from, to, text, rules, plugin, } = config;\n const { view } = editor;\n if (view.composing) {\n return false;\n }\n const $from = view.state.doc.resolve(from);\n if (\n // check for code node\n $from.parent.type.spec.code\n // check for code mark\n || !!((_a = ($from.nodeBefore || $from.nodeAfter)) === null || _a === void 0 ? void 0 : _a.marks.find(mark => mark.type.spec.code))) {\n return false;\n }\n let matched = false;\n const textBefore = getTextContentFromNodes($from) + text;\n rules.forEach(rule => {\n if (matched) {\n return;\n }\n const match = inputRuleMatcherHandler(textBefore, rule.find);\n if (!match) {\n return;\n }\n const tr = view.state.tr;\n const state = createChainableState({\n state: view.state,\n transaction: tr,\n });\n const range = {\n from: from - (match[0].length - text.length),\n to,\n };\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n });\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n });\n // stop if there are no changes\n if (handler === null || !tr.steps.length) {\n return;\n }\n // store transform as meta data\n // so we can undo input rules within the `undoInputRules` command\n tr.setMeta(plugin, {\n transform: tr,\n from,\n to,\n text,\n });\n view.dispatch(tr);\n matched = true;\n });\n return matched;\n}\n/**\n * Create an input rules plugin. When enabled, it will cause text\n * input that matches any of the given rules to trigger the rule’s\n * action.\n */\nfunction inputRulesPlugin(props) {\n const { editor, rules } = props;\n const plugin = new Plugin({\n state: {\n init() {\n return null;\n },\n apply(tr, prev) {\n const stored = tr.getMeta(plugin);\n if (stored) {\n return stored;\n }\n // if InputRule is triggered by insertContent()\n const simulatedInputMeta = tr.getMeta('applyInputRules');\n const isSimulatedInput = !!simulatedInputMeta;\n if (isSimulatedInput) {\n setTimeout(() => {\n const { from, text } = simulatedInputMeta;\n const to = from + text.length;\n run$1({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n });\n });\n }\n return tr.selectionSet || tr.docChanged ? null : prev;\n },\n },\n props: {\n handleTextInput(view, from, to, text) {\n return run$1({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n });\n },\n handleDOMEvents: {\n compositionend: view => {\n setTimeout(() => {\n const { $cursor } = view.state.selection;\n if ($cursor) {\n run$1({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '',\n rules,\n plugin,\n });\n }\n });\n return false;\n },\n },\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(view, event) {\n if (event.key !== 'Enter') {\n return false;\n }\n const { $cursor } = view.state.selection;\n if ($cursor) {\n return run$1({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '\\n',\n rules,\n plugin,\n });\n }\n return false;\n },\n },\n // @ts-ignore\n isInputRules: true,\n });\n return plugin;\n}\n\n// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\nfunction getType(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n}\nfunction isPlainObject(value) {\n if (getType(value) !== 'Object') {\n return false;\n }\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;\n}\n\nfunction mergeDeep(target, source) {\n const output = { ...target };\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n output[key] = mergeDeep(target[key], source[key]);\n }\n else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}\n\n/**\n * The Mark class is used to create custom mark extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nclass Mark {\n constructor(config = {}) {\n this.type = 'mark';\n this.name = 'mark';\n this.parent = null;\n this.child = null;\n this.config = {\n name: this.name,\n defaultOptions: {},\n };\n this.config = {\n ...this.config,\n ...config,\n };\n this.name = this.config.name;\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`);\n }\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions;\n if (this.config.addOptions) {\n this.options = callOrReturn(getExtensionField(this, 'addOptions', {\n name: this.name,\n }));\n }\n this.storage = callOrReturn(getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n })) || {};\n }\n static create(config = {}) {\n return new Mark(config);\n }\n configure(options = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options, options);\n },\n });\n // Always preserve the current name\n extension.name = this.name;\n // Set the parent to be our parent\n extension.parent = this.parent;\n return extension;\n }\n extend(extendedConfig = {}) {\n const extension = new Mark(extendedConfig);\n extension.parent = this;\n this.child = extension;\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`);\n }\n extension.options = callOrReturn(getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }));\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }));\n return extension;\n }\n static handleExit({ editor, mark }) {\n const { tr } = editor.state;\n const currentPos = editor.state.selection.$from;\n const isAtEnd = currentPos.pos === currentPos.end();\n if (isAtEnd) {\n const currentMarks = currentPos.marks();\n const isInMark = !!currentMarks.find(m => (m === null || m === void 0 ? void 0 : m.type.name) === mark.name);\n if (!isInMark) {\n return false;\n }\n const removeMark = currentMarks.find(m => (m === null || m === void 0 ? void 0 : m.type.name) === mark.name);\n if (removeMark) {\n tr.removeStoredMark(removeMark);\n }\n tr.insertText(' ', currentPos.pos);\n editor.view.dispatch(tr);\n return true;\n }\n return false;\n }\n}\n\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\n/**\n * Paste rules are used to react to pasted content.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nclass PasteRule {\n constructor(config) {\n this.find = config.find;\n this.handler = config.handler;\n }\n}\nconst pasteRuleMatcherHandler = (text, find, event) => {\n if (isRegExp(find)) {\n return [...text.matchAll(find)];\n }\n const matches = find(text, event);\n if (!matches) {\n return [];\n }\n return matches.map(pasteRuleMatch => {\n const result = [pasteRuleMatch.text];\n result.index = pasteRuleMatch.index;\n result.input = text;\n result.data = pasteRuleMatch.data;\n if (pasteRuleMatch.replaceWith) {\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\n console.warn('[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".');\n }\n result.push(pasteRuleMatch.replaceWith);\n }\n return result;\n });\n};\nfunction run(config) {\n const { editor, state, from, to, rule, pasteEvent, dropEvent, } = config;\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n });\n const handlers = [];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isTextblock || node.type.spec.code) {\n return;\n }\n const resolvedFrom = Math.max(from, pos);\n const resolvedTo = Math.min(to, pos + node.content.size);\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc');\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find, pasteEvent);\n matches.forEach(match => {\n if (match.index === undefined) {\n return;\n }\n const start = resolvedFrom + match.index + 1;\n const end = start + match[0].length;\n const range = {\n from: state.tr.mapping.map(start),\n to: state.tr.mapping.map(end),\n };\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n pasteEvent,\n dropEvent,\n });\n handlers.push(handler);\n });\n });\n const success = handlers.every(handler => handler !== null);\n return success;\n}\nconst createClipboardPasteEvent = (text) => {\n var _a;\n const event = new ClipboardEvent('paste', {\n clipboardData: new DataTransfer(),\n });\n (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData('text/html', text);\n return event;\n};\n/**\n * Create an paste rules plugin. When enabled, it will cause pasted\n * text that matches any of the given rules to trigger the rule’s\n * action.\n */\nfunction pasteRulesPlugin(props) {\n const { editor, rules } = props;\n let dragSourceElement = null;\n let isPastedFromProseMirror = false;\n let isDroppedFromProseMirror = false;\n let pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null;\n let dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null;\n const processEvent = ({ state, from, to, rule, pasteEvt, }) => {\n const tr = state.tr;\n const chainableState = createChainableState({\n state,\n transaction: tr,\n });\n const handler = run({\n editor,\n state: chainableState,\n from: Math.max(from - 1, 0),\n to: to.b - 1,\n rule,\n pasteEvent: pasteEvt,\n dropEvent,\n });\n if (!handler || !tr.steps.length) {\n return;\n }\n dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null;\n pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null;\n return tr;\n };\n const plugins = rules.map(rule => {\n return new Plugin({\n // we register a global drag handler to track the current drag source element\n view(view) {\n const handleDragstart = (event) => {\n var _a;\n dragSourceElement = ((_a = view.dom.parentElement) === null || _a === void 0 ? void 0 : _a.contains(event.target))\n ? view.dom.parentElement\n : null;\n };\n window.addEventListener('dragstart', handleDragstart);\n return {\n destroy() {\n window.removeEventListener('dragstart', handleDragstart);\n },\n };\n },\n props: {\n handleDOMEvents: {\n drop: (view, event) => {\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement;\n dropEvent = event;\n return false;\n },\n paste: (_view, event) => {\n var _a;\n const html = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/html');\n pasteEvent = event;\n isPastedFromProseMirror = !!(html === null || html === void 0 ? void 0 : html.includes('data-pm-slice'));\n return false;\n },\n },\n },\n appendTransaction: (transactions, oldState, state) => {\n const transaction = transactions[0];\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror;\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror;\n // if PasteRule is triggered by insertContent()\n const simulatedPasteMeta = transaction.getMeta('applyPasteRules');\n const isSimulatedPaste = !!simulatedPasteMeta;\n if (!isPaste && !isDrop && !isSimulatedPaste) {\n return;\n }\n // Handle simulated paste\n if (isSimulatedPaste) {\n const { from, text } = simulatedPasteMeta;\n const to = from + text.length;\n const pasteEvt = createClipboardPasteEvent(text);\n return processEvent({\n rule,\n state,\n from,\n to: { b: to },\n pasteEvt,\n });\n }\n // handle actual paste/drop\n const from = oldState.doc.content.findDiffStart(state.doc.content);\n const to = oldState.doc.content.findDiffEnd(state.doc.content);\n // stop if there is no changed range\n if (!isNumber(from) || !to || from === to.b) {\n return;\n }\n return processEvent({\n rule,\n state,\n from,\n to,\n pasteEvt: pasteEvent,\n });\n },\n });\n });\n return plugins;\n}\n\nfunction findDuplicates(items) {\n const filtered = items.filter((el, index) => items.indexOf(el) !== index);\n return Array.from(new Set(filtered));\n}\n\nclass ExtensionManager {\n constructor(extensions, editor) {\n this.splittableMarks = [];\n this.editor = editor;\n this.extensions = ExtensionManager.resolve(extensions);\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor);\n this.setupExtensions();\n }\n /**\n * Returns a flattened and sorted extension list while\n * also checking for duplicated extensions and warns the user.\n * @param extensions An array of Tiptap extensions\n * @returns An flattened and sorted array of Tiptap extensions\n */\n static resolve(extensions) {\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions));\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name));\n if (duplicatedNames.length) {\n console.warn(`[tiptap warn]: Duplicate extension names found: [${duplicatedNames\n .map(item => `'${item}'`)\n .join(', ')}]. This can lead to issues.`);\n }\n return resolvedExtensions;\n }\n /**\n * Create a flattened array of extensions by traversing the `addExtensions` field.\n * @param extensions An array of Tiptap extensions\n * @returns A flattened array of Tiptap extensions\n */\n static flatten(extensions) {\n return (extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n };\n const addExtensions = getExtensionField(extension, 'addExtensions', context);\n if (addExtensions) {\n return [extension, ...this.flatten(addExtensions())];\n }\n return extension;\n })\n // `Infinity` will break TypeScript so we set a number that is probably high enough\n .flat(10));\n }\n /**\n * Sort extensions by priority.\n * @param extensions An array of Tiptap extensions\n * @returns A sorted array of Tiptap extensions by priority\n */\n static sort(extensions) {\n const defaultPriority = 100;\n return extensions.sort((a, b) => {\n const priorityA = getExtensionField(a, 'priority') || defaultPriority;\n const priorityB = getExtensionField(b, 'priority') || defaultPriority;\n if (priorityA > priorityB) {\n return -1;\n }\n if (priorityA < priorityB) {\n return 1;\n }\n return 0;\n });\n }\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands() {\n return this.extensions.reduce((commands, extension) => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n };\n const addCommands = getExtensionField(extension, 'addCommands', context);\n if (!addCommands) {\n return commands;\n }\n return {\n ...commands,\n ...addCommands(),\n };\n }, {});\n }\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins() {\n const { editor } = this;\n // With ProseMirror, first plugins within an array are executed first.\n // In Tiptap, we provide the ability to override plugins,\n // so it feels more natural to run plugins at the end of an array first.\n // That’s why we have to reverse the `extensions` array and sort again\n // based on the `priority` option.\n const extensions = ExtensionManager.sort([...this.extensions].reverse());\n const inputRules = [];\n const pasteRules = [];\n const allPlugins = extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n };\n const plugins = [];\n const addKeyboardShortcuts = getExtensionField(extension, 'addKeyboardShortcuts', context);\n let defaultBindings = {};\n // bind exit handling\n if (extension.type === 'mark' && getExtensionField(extension, 'exitable', context)) {\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension });\n }\n if (addKeyboardShortcuts) {\n const bindings = Object.fromEntries(Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\n return [shortcut, () => method({ editor })];\n }));\n defaultBindings = { ...defaultBindings, ...bindings };\n }\n const keyMapPlugin = keymap(defaultBindings);\n plugins.push(keyMapPlugin);\n const addInputRules = getExtensionField(extension, 'addInputRules', context);\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\n inputRules.push(...addInputRules());\n }\n const addPasteRules = getExtensionField(extension, 'addPasteRules', context);\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\n pasteRules.push(...addPasteRules());\n }\n const addProseMirrorPlugins = getExtensionField(extension, 'addProseMirrorPlugins', context);\n if (addProseMirrorPlugins) {\n const proseMirrorPlugins = addProseMirrorPlugins();\n plugins.push(...proseMirrorPlugins);\n }\n return plugins;\n })\n .flat();\n return [\n inputRulesPlugin({\n editor,\n rules: inputRules,\n }),\n ...pasteRulesPlugin({\n editor,\n rules: pasteRules,\n }),\n ...allPlugins,\n ];\n }\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return getAttributesFromExtensions(this.extensions);\n }\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor } = this;\n const { nodeExtensions } = splitExtensions(this.extensions);\n return Object.fromEntries(nodeExtensions\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\n .map(extension => {\n const extensionAttributes = this.attributes.filter(attribute => attribute.type === extension.name);\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getNodeType(extension.name, this.schema),\n };\n const addNodeView = getExtensionField(extension, 'addNodeView', context);\n if (!addNodeView) {\n return [];\n }\n const nodeview = (node, view, getPos, decorations, innerDecorations) => {\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes);\n return addNodeView()({\n // pass-through\n node,\n view,\n getPos: getPos,\n decorations,\n innerDecorations,\n // tiptap-specific\n editor,\n extension,\n HTMLAttributes,\n });\n };\n return [extension.name, nodeview];\n }));\n }\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n setupExtensions() {\n this.extensions.forEach(extension => {\n var _a;\n // store extension storage in editor\n this.editor.extensionStorage[extension.name] = extension.storage;\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n };\n if (extension.type === 'mark') {\n const keepOnSplit = (_a = callOrReturn(getExtensionField(extension, 'keepOnSplit', context))) !== null && _a !== void 0 ? _a : true;\n if (keepOnSplit) {\n this.splittableMarks.push(extension.name);\n }\n }\n const onBeforeCreate = getExtensionField(extension, 'onBeforeCreate', context);\n const onCreate = getExtensionField(extension, 'onCreate', context);\n const onUpdate = getExtensionField(extension, 'onUpdate', context);\n const onSelectionUpdate = getExtensionField(extension, 'onSelectionUpdate', context);\n const onTransaction = getExtensionField(extension, 'onTransaction', context);\n const onFocus = getExtensionField(extension, 'onFocus', context);\n const onBlur = getExtensionField(extension, 'onBlur', context);\n const onDestroy = getExtensionField(extension, 'onDestroy', context);\n if (onBeforeCreate) {\n this.editor.on('beforeCreate', onBeforeCreate);\n }\n if (onCreate) {\n this.editor.on('create', onCreate);\n }\n if (onUpdate) {\n this.editor.on('update', onUpdate);\n }\n if (onSelectionUpdate) {\n this.editor.on('selectionUpdate', onSelectionUpdate);\n }\n if (onTransaction) {\n this.editor.on('transaction', onTransaction);\n }\n if (onFocus) {\n this.editor.on('focus', onFocus);\n }\n if (onBlur) {\n this.editor.on('blur', onBlur);\n }\n if (onDestroy) {\n this.editor.on('destroy', onDestroy);\n }\n });\n }\n}\n\n/**\n * The Extension class is the base class for all extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nclass Extension {\n constructor(config = {}) {\n this.type = 'extension';\n this.name = 'extension';\n this.parent = null;\n this.child = null;\n this.config = {\n name: this.name,\n defaultOptions: {},\n };\n this.config = {\n ...this.config,\n ...config,\n };\n this.name = this.config.name;\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`);\n }\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions;\n if (this.config.addOptions) {\n this.options = callOrReturn(getExtensionField(this, 'addOptions', {\n name: this.name,\n }));\n }\n this.storage = callOrReturn(getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n })) || {};\n }\n static create(config = {}) {\n return new Extension(config);\n }\n configure(options = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options, options);\n },\n });\n // Always preserve the current name\n extension.name = this.name;\n // Set the parent to be our parent\n extension.parent = this.parent;\n return extension;\n }\n extend(extendedConfig = {}) {\n const extension = new Extension({ ...this.config, ...extendedConfig });\n extension.parent = this;\n this.child = extension;\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`);\n }\n extension.options = callOrReturn(getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }));\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }));\n return extension;\n }\n}\n\n/**\n * Gets the text between two positions in a Prosemirror node\n * and serializes it using the given text serializers and block separator (see getText)\n * @param startNode The Prosemirror node to start from\n * @param range The range of the text to get\n * @param options Options for the text serializer & block separator\n * @returns The text between the two positions\n */\nfunction getTextBetween(startNode, range, options) {\n const { from, to } = range;\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {};\n let text = '';\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\n var _a;\n if (node.isBlock && pos > from) {\n text += blockSeparator;\n }\n const textSerializer = textSerializers === null || textSerializers === void 0 ? void 0 : textSerializers[node.type.name];\n if (textSerializer) {\n if (parent) {\n text += textSerializer({\n node,\n pos,\n parent,\n index,\n range,\n });\n }\n // do not descend into child nodes when there exists a serializer\n return false;\n }\n if (node.isText) {\n text += (_a = node === null || node === void 0 ? void 0 : node.text) === null || _a === void 0 ? void 0 : _a.slice(Math.max(from, pos) - pos, to - pos); // eslint-disable-line\n }\n });\n return text;\n}\n\n/**\n * Find text serializers `toText` in a Prosemirror schema\n * @param schema The Prosemirror schema to search in\n * @returns A record of text serializers by node name\n */\nfunction getTextSerializersFromSchema(schema) {\n return Object.fromEntries(Object.entries(schema.nodes)\n .filter(([, node]) => node.spec.toText)\n .map(([name, node]) => [name, node.spec.toText]));\n}\n\nconst ClipboardTextSerializer = Extension.create({\n name: 'clipboardTextSerializer',\n addOptions() {\n return {\n blockSeparator: undefined,\n };\n },\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('clipboardTextSerializer'),\n props: {\n clipboardTextSerializer: () => {\n const { editor } = this;\n const { state, schema } = editor;\n const { doc, selection } = state;\n const { ranges } = selection;\n const from = Math.min(...ranges.map(range => range.$from.pos));\n const to = Math.max(...ranges.map(range => range.$to.pos));\n const textSerializers = getTextSerializersFromSchema(schema);\n const range = { from, to };\n return getTextBetween(doc, range, {\n ...(this.options.blockSeparator !== undefined\n ? { blockSeparator: this.options.blockSeparator }\n : {}),\n textSerializers,\n });\n },\n },\n }),\n ];\n },\n});\n\nconst blur = () => ({ editor, view }) => {\n requestAnimationFrame(() => {\n var _a;\n if (!editor.isDestroyed) {\n view.dom.blur();\n // Browsers should remove the caret on blur but safari does not.\n // See: https://github.com/ueberdosis/tiptap/issues/2405\n (_a = window === null || window === void 0 ? void 0 : window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();\n }\n });\n return true;\n};\n\nconst clearContent = (emitUpdate = false) => ({ commands }) => {\n return commands.setContent('', emitUpdate);\n};\n\nconst clearNodes = () => ({ state, tr, dispatch }) => {\n const { selection } = tr;\n const { ranges } = selection;\n if (!dispatch) {\n return true;\n }\n ranges.forEach(({ $from, $to }) => {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.type.isText) {\n return;\n }\n const { doc, mapping } = tr;\n const $mappedFrom = doc.resolve(mapping.map(pos));\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize));\n const nodeRange = $mappedFrom.blockRange($mappedTo);\n if (!nodeRange) {\n return;\n }\n const targetLiftDepth = liftTarget(nodeRange);\n if (node.type.isTextblock) {\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index());\n tr.setNodeMarkup(nodeRange.start, defaultType);\n }\n if (targetLiftDepth || targetLiftDepth === 0) {\n tr.lift(nodeRange, targetLiftDepth);\n }\n });\n });\n return true;\n};\n\nconst command = fn => props => {\n return fn(props);\n};\n\nconst createParagraphNear = () => ({ state, dispatch }) => {\n return createParagraphNear$1(state, dispatch);\n};\n\nconst cut = (originRange, targetPos) => ({ editor, tr }) => {\n const { state } = editor;\n const contentSlice = state.doc.slice(originRange.from, originRange.to);\n tr.deleteRange(originRange.from, originRange.to);\n const newPos = tr.mapping.map(targetPos);\n tr.insert(newPos, contentSlice.content);\n tr.setSelection(new TextSelection(tr.doc.resolve(newPos - 1)));\n return true;\n};\n\nconst deleteCurrentNode = () => ({ tr, dispatch }) => {\n const { selection } = tr;\n const currentNode = selection.$anchor.node();\n // if there is content inside the current node, break out of this command\n if (currentNode.content.size > 0) {\n return false;\n }\n const $pos = tr.selection.$anchor;\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth);\n if (node.type === currentNode.type) {\n if (dispatch) {\n const from = $pos.before(depth);\n const to = $pos.after(depth);\n tr.delete(from, to).scrollIntoView();\n }\n return true;\n }\n }\n return false;\n};\n\nconst deleteNode = typeOrName => ({ tr, state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema);\n const $pos = tr.selection.$anchor;\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth);\n if (node.type === type) {\n if (dispatch) {\n const from = $pos.before(depth);\n const to = $pos.after(depth);\n tr.delete(from, to).scrollIntoView();\n }\n return true;\n }\n }\n return false;\n};\n\nconst deleteRange = range => ({ tr, dispatch }) => {\n const { from, to } = range;\n if (dispatch) {\n tr.delete(from, to);\n }\n return true;\n};\n\nconst deleteSelection = () => ({ state, dispatch }) => {\n return deleteSelection$1(state, dispatch);\n};\n\nconst enter = () => ({ commands }) => {\n return commands.keyboardShortcut('Enter');\n};\n\nconst exitCode = () => ({ state, dispatch }) => {\n return exitCode$1(state, dispatch);\n};\n\n/**\n * Check if object1 includes object2\n * @param object1 Object\n * @param object2 Object\n */\nfunction objectIncludes(object1, object2, options = { strict: true }) {\n const keys = Object.keys(object2);\n if (!keys.length) {\n return true;\n }\n return keys.every(key => {\n if (options.strict) {\n return object2[key] === object1[key];\n }\n if (isRegExp(object2[key])) {\n return object2[key].test(object1[key]);\n }\n return object2[key] === object1[key];\n });\n}\n\nfunction findMarkInSet(marks, type, attributes = {}) {\n return marks.find(item => {\n return item.type === type && objectIncludes(item.attrs, attributes);\n });\n}\nfunction isMarkInSet(marks, type, attributes = {}) {\n return !!findMarkInSet(marks, type, attributes);\n}\nfunction getMarkRange($pos, type, attributes = {}) {\n if (!$pos || !type) {\n return;\n }\n let start = $pos.parent.childAfter($pos.parentOffset);\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\n start = $pos.parent.childBefore($pos.parentOffset);\n }\n if (!start.node) {\n return;\n }\n const mark = findMarkInSet([...start.node.marks], type, attributes);\n if (!mark) {\n return;\n }\n let startIndex = start.index;\n let startPos = $pos.start() + start.offset;\n let endIndex = startIndex + 1;\n let endPos = startPos + start.node.nodeSize;\n findMarkInSet([...start.node.marks], type, attributes);\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\n startIndex -= 1;\n startPos -= $pos.parent.child(startIndex).nodeSize;\n }\n while (endIndex < $pos.parent.childCount\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)) {\n endPos += $pos.parent.child(endIndex).nodeSize;\n endIndex += 1;\n }\n return {\n from: startPos,\n to: endPos,\n };\n}\n\nfunction getMarkType(nameOrType, schema) {\n if (typeof nameOrType === 'string') {\n if (!schema.marks[nameOrType]) {\n throw Error(`There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`);\n }\n return schema.marks[nameOrType];\n }\n return nameOrType;\n}\n\nconst extendMarkRange = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const type = getMarkType(typeOrName, state.schema);\n const { doc, selection } = tr;\n const { $from, from, to } = selection;\n if (dispatch) {\n const range = getMarkRange($from, type, attributes);\n if (range && range.from <= from && range.to >= to) {\n const newSelection = TextSelection.create(doc, range.from, range.to);\n tr.setSelection(newSelection);\n }\n }\n return true;\n};\n\nconst first = commands => props => {\n const items = typeof commands === 'function'\n ? commands(props)\n : commands;\n for (let i = 0; i < items.length; i += 1) {\n if (items[i](props)) {\n return true;\n }\n }\n return false;\n};\n\nfunction isTextSelection(value) {\n return value instanceof TextSelection;\n}\n\nfunction minMax(value = 0, min = 0, max = 0) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction resolveFocusPosition(doc, position = null) {\n if (!position) {\n return null;\n }\n const selectionAtStart = Selection.atStart(doc);\n const selectionAtEnd = Selection.atEnd(doc);\n if (position === 'start' || position === true) {\n return selectionAtStart;\n }\n if (position === 'end') {\n return selectionAtEnd;\n }\n const minPos = selectionAtStart.from;\n const maxPos = selectionAtEnd.to;\n if (position === 'all') {\n return TextSelection.create(doc, minMax(0, minPos, maxPos), minMax(doc.content.size, minPos, maxPos));\n }\n return TextSelection.create(doc, minMax(position, minPos, maxPos), minMax(position, minPos, maxPos));\n}\n\nfunction isiOS() {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\n}\n\nconst focus = (position = null, options = {}) => ({ editor, view, tr, dispatch, }) => {\n options = {\n scrollIntoView: true,\n ...options,\n };\n const delayedFocus = () => {\n // focus within `requestAnimationFrame` breaks focus on iOS\n // so we have to call this\n if (isiOS()) {\n view.dom.focus();\n }\n // For React we have to focus asynchronously. Otherwise wild things happen.\n // see: https://github.com/ueberdosis/tiptap/issues/1520\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n view.focus();\n if (options === null || options === void 0 ? void 0 : options.scrollIntoView) {\n editor.commands.scrollIntoView();\n }\n }\n });\n };\n if ((view.hasFocus() && position === null) || position === false) {\n return true;\n }\n // we don’t try to resolve a NodeSelection or CellSelection\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\n delayedFocus();\n return true;\n }\n // pass through tr.doc instead of editor.state.doc\n // since transactions could change the editors state before this command has been run\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection;\n const isSameSelection = editor.state.selection.eq(selection);\n if (dispatch) {\n if (!isSameSelection) {\n tr.setSelection(selection);\n }\n // `tr.setSelection` resets the stored marks\n // so we’ll restore them if the selection is the same as before\n if (isSameSelection && tr.storedMarks) {\n tr.setStoredMarks(tr.storedMarks);\n }\n delayedFocus();\n }\n return true;\n};\n\nconst forEach = (items, fn) => props => {\n return items.every((item, index) => fn(item, { ...props, index }));\n};\n\nconst insertContent = (value, options) => ({ tr, commands }) => {\n return commands.insertContentAt({ from: tr.selection.from, to: tr.selection.to }, value, options);\n};\n\nconst removeWhitespaces = (node) => {\n const children = node.childNodes;\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i];\n if (child.nodeType === 3 && child.nodeValue && /^(\\n\\s\\s|\\n)$/.test(child.nodeValue)) {\n node.removeChild(child);\n }\n else if (child.nodeType === 1) {\n removeWhitespaces(child);\n }\n }\n return node;\n};\nfunction elementFromString(value) {\n // add a wrapper to preserve leading and trailing whitespace\n const wrappedValue = `${value}`;\n const html = new window.DOMParser().parseFromString(wrappedValue, 'text/html').body;\n return removeWhitespaces(html);\n}\n\n/**\n * Takes a JSON or HTML content and creates a Prosemirror node or fragment from it.\n * @param content The JSON or HTML content to create the node from\n * @param schema The Prosemirror schema to use for the node\n * @param options Options for the parser\n * @returns The created Prosemirror node or fragment\n */\nfunction createNodeFromContent(content, schema, options) {\n options = {\n slice: true,\n parseOptions: {},\n ...options,\n };\n const isJSONContent = typeof content === 'object' && content !== null;\n const isTextContent = typeof content === 'string';\n if (isJSONContent) {\n try {\n const isArrayContent = Array.isArray(content) && content.length > 0;\n // if the JSON Content is an array of nodes, create a fragment for each node\n if (isArrayContent) {\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)));\n }\n const node = schema.nodeFromJSON(content);\n if (options.errorOnInvalidContent) {\n node.check();\n }\n return node;\n }\n catch (error) {\n if (options.errorOnInvalidContent) {\n throw new Error('[tiptap error]: Invalid JSON content', { cause: error });\n }\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error);\n return createNodeFromContent('', schema, options);\n }\n }\n if (isTextContent) {\n // Check for invalid content\n if (options.errorOnInvalidContent) {\n let hasInvalidContent = false;\n let invalidContent = '';\n // A copy of the current schema with a catch-all node at the end\n const contentCheckSchema = new Schema({\n topNode: schema.spec.topNode,\n marks: schema.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: schema.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: 'inline*',\n group: 'block',\n parseDOM: [\n {\n tag: '*',\n getAttrs: e => {\n // If this is ever called, we know that the content has something that we don't know how to handle in the schema\n hasInvalidContent = true;\n // Try to stringify the element for a more helpful error message\n invalidContent = typeof e === 'string' ? e : e.outerHTML;\n return null;\n },\n },\n ],\n },\n }),\n });\n if (options.slice) {\n DOMParser.fromSchema(contentCheckSchema).parseSlice(elementFromString(content), options.parseOptions);\n }\n else {\n DOMParser.fromSchema(contentCheckSchema).parse(elementFromString(content), options.parseOptions);\n }\n if (options.errorOnInvalidContent && hasInvalidContent) {\n throw new Error('[tiptap error]: Invalid HTML content', { cause: new Error(`Invalid element found: ${invalidContent}`) });\n }\n }\n const parser = DOMParser.fromSchema(schema);\n if (options.slice) {\n return parser.parseSlice(elementFromString(content), options.parseOptions).content;\n }\n return parser.parse(elementFromString(content), options.parseOptions);\n }\n return createNodeFromContent('', schema, options);\n}\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n const last = tr.steps.length - 1;\n if (last < startLen) {\n return;\n }\n const step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return;\n }\n const map = tr.mapping.maps[last];\n let end = 0;\n map.forEach((_from, _to, _newFrom, newTo) => {\n if (end === 0) {\n end = newTo;\n }\n });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nconst isFragment = (nodeOrFragment) => {\n return !('type' in nodeOrFragment);\n};\nconst insertContentAt = (position, value, options) => ({ tr, dispatch, editor }) => {\n var _a;\n if (dispatch) {\n options = {\n parseOptions: {},\n updateSelection: true,\n applyInputRules: false,\n applyPasteRules: false,\n ...options,\n };\n let content;\n try {\n content = createNodeFromContent(value, editor.schema, {\n parseOptions: {\n preserveWhitespace: 'full',\n ...options.parseOptions,\n },\n errorOnInvalidContent: (_a = options.errorOnInvalidContent) !== null && _a !== void 0 ? _a : editor.options.enableContentCheck,\n });\n }\n catch (e) {\n editor.emit('contentError', {\n editor,\n error: e,\n disableCollaboration: () => {\n console.error('[tiptap error]: Unable to disable collaboration at this point in time');\n },\n });\n return false;\n }\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to };\n let isOnlyTextContent = true;\n let isOnlyBlockContent = true;\n const nodes = isFragment(content) ? content : [content];\n nodes.forEach(node => {\n // check if added node is valid\n node.check();\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false;\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false;\n });\n // check if we can replace the wrapping node by\n // the newly inserted content\n // example:\n // replace an empty paragraph by an inserted image\n // instead of inserting the image below the paragraph\n if (from === to && isOnlyBlockContent) {\n const { parent } = tr.doc.resolve(from);\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount;\n if (isEmptyTextBlock) {\n from -= 1;\n to += 1;\n }\n }\n let newContent;\n // if there is only plain text we have to use `insertText`\n // because this will keep the current marks\n if (isOnlyTextContent) {\n // if value is string, we can use it directly\n // otherwise if it is an array, we have to join it\n if (Array.isArray(value)) {\n newContent = value.map(v => v.text || '').join('');\n }\n else if (typeof value === 'object' && !!value && !!value.text) {\n newContent = value.text;\n }\n else {\n newContent = value;\n }\n tr.insertText(newContent, from, to);\n }\n else {\n newContent = content;\n tr.replaceWith(from, to, newContent);\n }\n // set cursor at end of inserted content\n if (options.updateSelection) {\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1);\n }\n if (options.applyInputRules) {\n tr.setMeta('applyInputRules', { from, text: newContent });\n }\n if (options.applyPasteRules) {\n tr.setMeta('applyPasteRules', { from, text: newContent });\n }\n }\n return true;\n};\n\nconst joinUp = () => ({ state, dispatch }) => {\n return joinUp$1(state, dispatch);\n};\nconst joinDown = () => ({ state, dispatch }) => {\n return joinDown$1(state, dispatch);\n};\nconst joinBackward = () => ({ state, dispatch }) => {\n return joinBackward$1(state, dispatch);\n};\nconst joinForward = () => ({ state, dispatch }) => {\n return joinForward$1(state, dispatch);\n};\n\nconst joinItemBackward = () => ({ state, dispatch, tr, }) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, -1);\n if (point === null || point === undefined) {\n return false;\n }\n tr.join(point, 2);\n if (dispatch) {\n dispatch(tr);\n }\n return true;\n }\n catch (e) {\n return false;\n }\n};\n\nconst joinItemForward = () => ({ state, dispatch, tr, }) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, +1);\n if (point === null || point === undefined) {\n return false;\n }\n tr.join(point, 2);\n if (dispatch) {\n dispatch(tr);\n }\n return true;\n }\n catch (e) {\n return false;\n }\n};\n\nconst joinTextblockBackward = () => ({ state, dispatch }) => {\n return joinTextblockBackward$1(state, dispatch);\n};\n\nconst joinTextblockForward = () => ({ state, dispatch }) => {\n return joinTextblockForward$1(state, dispatch);\n};\n\nfunction isMacOS() {\n return typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false;\n}\n\nfunction normalizeKeyName(name) {\n const parts = name.split(/-(?!$)/);\n let result = parts[parts.length - 1];\n if (result === 'Space') {\n result = ' ';\n }\n let alt;\n let ctrl;\n let shift;\n let meta;\n for (let i = 0; i < parts.length - 1; i += 1) {\n const mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) {\n meta = true;\n }\n else if (/^a(lt)?$/i.test(mod)) {\n alt = true;\n }\n else if (/^(c|ctrl|control)$/i.test(mod)) {\n ctrl = true;\n }\n else if (/^s(hift)?$/i.test(mod)) {\n shift = true;\n }\n else if (/^mod$/i.test(mod)) {\n if (isiOS() || isMacOS()) {\n meta = true;\n }\n else {\n ctrl = true;\n }\n }\n else {\n throw new Error(`Unrecognized modifier name: ${mod}`);\n }\n }\n if (alt) {\n result = `Alt-${result}`;\n }\n if (ctrl) {\n result = `Ctrl-${result}`;\n }\n if (meta) {\n result = `Meta-${result}`;\n }\n if (shift) {\n result = `Shift-${result}`;\n }\n return result;\n}\nconst keyboardShortcut = name => ({ editor, view, tr, dispatch, }) => {\n const keys = normalizeKeyName(name).split(/-(?!$)/);\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item));\n const event = new KeyboardEvent('keydown', {\n key: key === 'Space'\n ? ' '\n : key,\n altKey: keys.includes('Alt'),\n ctrlKey: keys.includes('Ctrl'),\n metaKey: keys.includes('Meta'),\n shiftKey: keys.includes('Shift'),\n bubbles: true,\n cancelable: true,\n });\n const capturedTransaction = editor.captureTransaction(() => {\n view.someProp('handleKeyDown', f => f(view, event));\n });\n capturedTransaction === null || capturedTransaction === void 0 ? void 0 : capturedTransaction.steps.forEach(step => {\n const newStep = step.map(tr.mapping);\n if (newStep && dispatch) {\n tr.maybeStep(newStep);\n }\n });\n return true;\n};\n\nfunction isNodeActive(state, typeOrName, attributes = {}) {\n const { from, to, empty } = state.selection;\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null;\n const nodeRanges = [];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n return;\n }\n const relativeFrom = Math.max(from, pos);\n const relativeTo = Math.min(to, pos + node.nodeSize);\n nodeRanges.push({\n node,\n from: relativeFrom,\n to: relativeTo,\n });\n });\n const selectionRange = to - from;\n const matchedNodeRanges = nodeRanges\n .filter(nodeRange => {\n if (!type) {\n return true;\n }\n return type.name === nodeRange.node.type.name;\n })\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }));\n if (empty) {\n return !!matchedNodeRanges.length;\n }\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0);\n return range >= selectionRange;\n}\n\nconst lift = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema);\n const isActive = isNodeActive(state, type, attributes);\n if (!isActive) {\n return false;\n }\n return lift$1(state, dispatch);\n};\n\nconst liftEmptyBlock = () => ({ state, dispatch }) => {\n return liftEmptyBlock$1(state, dispatch);\n};\n\nconst liftListItem = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema);\n return liftListItem$1(type)(state, dispatch);\n};\n\nconst newlineInCode = () => ({ state, dispatch }) => {\n return newlineInCode$1(state, dispatch);\n};\n\n/**\n * Get the type of a schema item by its name.\n * @param name The name of the schema item\n * @param schema The Prosemiror schema to search in\n * @returns The type of the schema item (`node` or `mark`), or null if it doesn't exist\n */\nfunction getSchemaTypeNameByName(name, schema) {\n if (schema.nodes[name]) {\n return 'node';\n }\n if (schema.marks[name]) {\n return 'mark';\n }\n return null;\n}\n\n/**\n * Remove a property or an array of properties from an object\n * @param obj Object\n * @param key Key to remove\n */\nfunction deleteProps(obj, propOrProps) {\n const props = typeof propOrProps === 'string'\n ? [propOrProps]\n : propOrProps;\n return Object\n .keys(obj)\n .reduce((newObj, prop) => {\n if (!props.includes(prop)) {\n newObj[prop] = obj[prop];\n }\n return newObj;\n }, {});\n}\n\nconst resetAttributes = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\n let nodeType = null;\n let markType = null;\n const schemaType = getSchemaTypeNameByName(typeof typeOrName === 'string' ? typeOrName : typeOrName.name, state.schema);\n if (!schemaType) {\n return false;\n }\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName, state.schema);\n }\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName, state.schema);\n }\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes));\n }\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n tr.addMark(pos, pos + node.nodeSize, markType.create(deleteProps(mark.attrs, attributes)));\n }\n });\n }\n });\n });\n }\n return true;\n};\n\nconst scrollIntoView = () => ({ tr, dispatch }) => {\n if (dispatch) {\n tr.scrollIntoView();\n }\n return true;\n};\n\nconst selectAll = () => ({ tr, commands }) => {\n return commands.setTextSelection({\n from: 0,\n to: tr.doc.content.size,\n });\n};\n\nconst selectNodeBackward = () => ({ state, dispatch }) => {\n return selectNodeBackward$1(state, dispatch);\n};\n\nconst selectNodeForward = () => ({ state, dispatch }) => {\n return selectNodeForward$1(state, dispatch);\n};\n\nconst selectParentNode = () => ({ state, dispatch }) => {\n return selectParentNode$1(state, dispatch);\n};\n\n// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nconst selectTextblockEnd = () => ({ state, dispatch }) => {\n return selectTextblockEnd$1(state, dispatch);\n};\n\n// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nconst selectTextblockStart = () => ({ state, dispatch }) => {\n return selectTextblockStart$1(state, dispatch);\n};\n\n/**\n * Create a new Prosemirror document node from content.\n * @param content The JSON or HTML content to create the document from\n * @param schema The Prosemirror schema to use for the document\n * @param parseOptions Options for the parser\n * @returns The created Prosemirror document node\n */\nfunction createDocument(content, schema, parseOptions = {}, options = {}) {\n return createNodeFromContent(content, schema, {\n slice: false,\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent,\n });\n}\n\nconst setContent = (content, emitUpdate = false, parseOptions = {}, options = {}) => ({ editor, tr, dispatch, commands, }) => {\n var _a, _b;\n const { doc } = tr;\n // This is to keep backward compatibility with the previous behavior\n // TODO remove this in the next major version\n if (parseOptions.preserveWhitespace !== 'full') {\n const document = createDocument(content, editor.schema, parseOptions, {\n errorOnInvalidContent: (_a = options.errorOnInvalidContent) !== null && _a !== void 0 ? _a : editor.options.enableContentCheck,\n });\n if (dispatch) {\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate);\n }\n return true;\n }\n if (dispatch) {\n tr.setMeta('preventUpdate', !emitUpdate);\n }\n return commands.insertContentAt({ from: 0, to: doc.content.size }, content, {\n parseOptions,\n errorOnInvalidContent: (_b = options.errorOnInvalidContent) !== null && _b !== void 0 ? _b : editor.options.enableContentCheck,\n });\n};\n\nfunction getMarkAttributes(state, typeOrName) {\n const type = getMarkType(typeOrName, state.schema);\n const { from, to, empty } = state.selection;\n const marks = [];\n if (empty) {\n if (state.storedMarks) {\n marks.push(...state.storedMarks);\n }\n marks.push(...state.selection.$head.marks());\n }\n else {\n state.doc.nodesBetween(from, to, node => {\n marks.push(...node.marks);\n });\n }\n const mark = marks.find(markItem => markItem.type.name === type.name);\n if (!mark) {\n return {};\n }\n return { ...mark.attrs };\n}\n\n/**\n * Returns a new `Transform` based on all steps of the passed transactions.\n * @param oldDoc The Prosemirror node to start from\n * @param transactions The transactions to combine\n * @returns A new `Transform` with all steps of the passed transactions\n */\nfunction combineTransactionSteps(oldDoc, transactions) {\n const transform = new Transform(oldDoc);\n transactions.forEach(transaction => {\n transaction.steps.forEach(step => {\n transform.step(step);\n });\n });\n return transform;\n}\n\n/**\n * Gets the default block type at a given match\n * @param match The content match to get the default block type from\n * @returns The default block type or null\n */\nfunction defaultBlockAt(match) {\n for (let i = 0; i < match.edgeCount; i += 1) {\n const { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs()) {\n return type;\n }\n }\n return null;\n}\n\n/**\n * Find children inside a Prosemirror node that match a predicate.\n * @param node The Prosemirror node to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nfunction findChildren(node, predicate) {\n const nodesWithPos = [];\n node.descendants((child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n });\n }\n });\n return nodesWithPos;\n}\n\n/**\n * Same as `findChildren` but searches only within a `range`.\n * @param node The Prosemirror node to search in\n * @param range The range to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nfunction findChildrenInRange(node, range, predicate) {\n const nodesWithPos = [];\n // if (range.from === range.to) {\n // const nodeAt = node.nodeAt(range.from)\n // if (nodeAt) {\n // nodesWithPos.push({\n // node: nodeAt,\n // pos: range.from,\n // })\n // }\n // }\n node.nodesBetween(range.from, range.to, (child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n });\n }\n });\n return nodesWithPos;\n}\n\n/**\n * Finds the closest parent node to a resolved position that matches a predicate.\n * @param $pos The resolved position to search from\n * @param predicate The predicate to match\n * @returns The closest parent node to the resolved position that matches the predicate\n * @example ```js\n * findParentNodeClosestToPos($from, node => node.type.name === 'paragraph')\n * ```\n */\nfunction findParentNodeClosestToPos($pos, predicate) {\n for (let i = $pos.depth; i > 0; i -= 1) {\n const node = $pos.node(i);\n if (predicate(node)) {\n return {\n pos: i > 0 ? $pos.before(i) : 0,\n start: $pos.start(i),\n depth: i,\n node,\n };\n }\n }\n}\n\n/**\n * Finds the closest parent node to the current selection that matches a predicate.\n * @param predicate The predicate to match\n * @returns A command that finds the closest parent node to the current selection that matches the predicate\n * @example ```js\n * findParentNode(node => node.type.name === 'paragraph')\n * ```\n */\nfunction findParentNode(predicate) {\n return (selection) => findParentNodeClosestToPos(selection.$from, predicate);\n}\n\nfunction getHTMLFromFragment(fragment, schema) {\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);\n const temporaryDocument = document.implementation.createHTMLDocument();\n const container = temporaryDocument.createElement('div');\n container.appendChild(documentFragment);\n return container.innerHTML;\n}\n\nfunction getSchema(extensions, editor) {\n const resolvedExtensions = ExtensionManager.resolve(extensions);\n return getSchemaByResolvedExtensions(resolvedExtensions, editor);\n}\n\n/**\n * Generate HTML from a JSONContent\n * @param doc The JSONContent to generate HTML from\n * @param extensions The extensions to use for the schema\n * @returns The generated HTML\n */\nfunction generateHTML(doc, extensions) {\n const schema = getSchema(extensions);\n const contentNode = Node$1.fromJSON(schema, doc);\n return getHTMLFromFragment(contentNode.content, schema);\n}\n\n/**\n * Generate JSONContent from HTML\n * @param html The HTML to generate JSONContent from\n * @param extensions The extensions to use for the schema\n * @returns The generated JSONContent\n */\nfunction generateJSON(html, extensions) {\n const schema = getSchema(extensions);\n const dom = elementFromString(html);\n return DOMParser.fromSchema(schema).parse(dom).toJSON();\n}\n\n/**\n * Gets the text of a Prosemirror node\n * @param node The Prosemirror node\n * @param options Options for the text serializer & block separator\n * @returns The text of the node\n * @example ```js\n * const text = getText(node, { blockSeparator: '\\n' })\n * ```\n */\nfunction getText(node, options) {\n const range = {\n from: 0,\n to: node.content.size,\n };\n return getTextBetween(node, range, options);\n}\n\n/**\n * Generate raw text from a JSONContent\n * @param doc The JSONContent to generate text from\n * @param extensions The extensions to use for the schema\n * @param options Options for the text generation f.e. blockSeparator or textSerializers\n * @returns The generated text\n */\nfunction generateText(doc, extensions, options) {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {};\n const schema = getSchema(extensions);\n const contentNode = Node$1.fromJSON(schema, doc);\n return getText(contentNode, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(schema),\n ...textSerializers,\n },\n });\n}\n\nfunction getNodeAttributes(state, typeOrName) {\n const type = getNodeType(typeOrName, state.schema);\n const { from, to } = state.selection;\n const nodes = [];\n state.doc.nodesBetween(from, to, node => {\n nodes.push(node);\n });\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name);\n if (!node) {\n return {};\n }\n return { ...node.attrs };\n}\n\n/**\n * Get node or mark attributes by type or name on the current editor state\n * @param state The current editor state\n * @param typeOrName The node or mark type or name\n * @returns The attributes of the node or mark or an empty object\n */\nfunction getAttributes(state, typeOrName) {\n const schemaType = getSchemaTypeNameByName(typeof typeOrName === 'string' ? typeOrName : typeOrName.name, state.schema);\n if (schemaType === 'node') {\n return getNodeAttributes(state, typeOrName);\n }\n if (schemaType === 'mark') {\n return getMarkAttributes(state, typeOrName);\n }\n return {};\n}\n\n/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nfunction removeDuplicates(array, by = JSON.stringify) {\n const seen = {};\n return array.filter(item => {\n const key = by(item);\n return Object.prototype.hasOwnProperty.call(seen, key)\n ? false\n : (seen[key] = true);\n });\n}\n\n/**\n * Removes duplicated ranges and ranges that are\n * fully captured by other ranges.\n */\nfunction simplifyChangedRanges(changes) {\n const uniqueChanges = removeDuplicates(changes);\n return uniqueChanges.length === 1\n ? uniqueChanges\n : uniqueChanges.filter((change, index) => {\n const rest = uniqueChanges.filter((_, i) => i !== index);\n return !rest.some(otherChange => {\n return change.oldRange.from >= otherChange.oldRange.from\n && change.oldRange.to <= otherChange.oldRange.to\n && change.newRange.from >= otherChange.newRange.from\n && change.newRange.to <= otherChange.newRange.to;\n });\n });\n}\n/**\n * Returns a list of changed ranges\n * based on the first and last state of all steps.\n */\nfunction getChangedRanges(transform) {\n const { mapping, steps } = transform;\n const changes = [];\n mapping.maps.forEach((stepMap, index) => {\n const ranges = [];\n // This accounts for step changes where no range was actually altered\n // e.g. when setting a mark, node attribute, etc.\n // @ts-ignore\n if (!stepMap.ranges.length) {\n const { from, to } = steps[index];\n if (from === undefined || to === undefined) {\n return;\n }\n ranges.push({ from, to });\n }\n else {\n stepMap.forEach((from, to) => {\n ranges.push({ from, to });\n });\n }\n ranges.forEach(({ from, to }) => {\n const newStart = mapping.slice(index).map(from, -1);\n const newEnd = mapping.slice(index).map(to);\n const oldStart = mapping.invert().map(newStart, -1);\n const oldEnd = mapping.invert().map(newEnd);\n changes.push({\n oldRange: {\n from: oldStart,\n to: oldEnd,\n },\n newRange: {\n from: newStart,\n to: newEnd,\n },\n });\n });\n });\n return simplifyChangedRanges(changes);\n}\n\nfunction getDebugJSON(node, startOffset = 0) {\n const isTopNode = node.type === node.type.schema.topNodeType;\n const increment = isTopNode ? 0 : 1;\n const from = startOffset;\n const to = from + node.nodeSize;\n const marks = node.marks.map(mark => {\n const output = {\n type: mark.type.name,\n };\n if (Object.keys(mark.attrs).length) {\n output.attrs = { ...mark.attrs };\n }\n return output;\n });\n const attrs = { ...node.attrs };\n const output = {\n type: node.type.name,\n from,\n to,\n };\n if (Object.keys(attrs).length) {\n output.attrs = attrs;\n }\n if (marks.length) {\n output.marks = marks;\n }\n if (node.content.childCount) {\n output.content = [];\n node.forEach((child, offset) => {\n var _a;\n (_a = output.content) === null || _a === void 0 ? void 0 : _a.push(getDebugJSON(child, startOffset + offset + increment));\n });\n }\n if (node.text) {\n output.text = node.text;\n }\n return output;\n}\n\nfunction getMarksBetween(from, to, doc) {\n const marks = [];\n // get all inclusive marks on empty selection\n if (from === to) {\n doc\n .resolve(from)\n .marks()\n .forEach(mark => {\n const $pos = doc.resolve(from);\n const range = getMarkRange($pos, mark.type);\n if (!range) {\n return;\n }\n marks.push({\n mark,\n ...range,\n });\n });\n }\n else {\n doc.nodesBetween(from, to, (node, pos) => {\n if (!node || (node === null || node === void 0 ? void 0 : node.nodeSize) === undefined) {\n return;\n }\n marks.push(...node.marks.map(mark => ({\n from: pos,\n to: pos + node.nodeSize,\n mark,\n })));\n });\n }\n return marks;\n}\n\n/**\n * Finds the first node of a given type or name in the current selection.\n * @param state The editor state.\n * @param typeOrName The node type or name.\n * @param pos The position to start searching from.\n * @param maxDepth The maximum depth to search.\n * @returns The node and the depth as an array.\n */\nconst getNodeAtPosition = (state, typeOrName, pos, maxDepth = 20) => {\n const $pos = state.doc.resolve(pos);\n let currentDepth = maxDepth;\n let node = null;\n while (currentDepth > 0 && node === null) {\n const currentNode = $pos.node(currentDepth);\n if ((currentNode === null || currentNode === void 0 ? void 0 : currentNode.type.name) === typeOrName) {\n node = currentNode;\n }\n else {\n currentDepth -= 1;\n }\n }\n return [node, currentDepth];\n};\n\n/**\n * Return attributes of an extension that should be splitted by keepOnSplit flag\n * @param extensionAttributes Array of extension attributes\n * @param typeName The type of the extension\n * @param attributes The attributes of the extension\n * @returns The splitted attributes\n */\nfunction getSplittedAttributes(extensionAttributes, typeName, attributes) {\n return Object.fromEntries(Object\n .entries(attributes)\n .filter(([name]) => {\n const extensionAttribute = extensionAttributes.find(item => {\n return item.type === typeName && item.name === name;\n });\n if (!extensionAttribute) {\n return false;\n }\n return extensionAttribute.attribute.keepOnSplit;\n }));\n}\n\nfunction isMarkActive(state, typeOrName, attributes = {}) {\n const { empty, ranges } = state.selection;\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null;\n if (empty) {\n return !!(state.storedMarks || state.selection.$from.marks())\n .filter(mark => {\n if (!type) {\n return true;\n }\n return type.name === mark.type.name;\n })\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }));\n }\n let selectionRange = 0;\n const markRanges = [];\n ranges.forEach(({ $from, $to }) => {\n const from = $from.pos;\n const to = $to.pos;\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isText && !node.marks.length) {\n return;\n }\n const relativeFrom = Math.max(from, pos);\n const relativeTo = Math.min(to, pos + node.nodeSize);\n const range = relativeTo - relativeFrom;\n selectionRange += range;\n markRanges.push(...node.marks.map(mark => ({\n mark,\n from: relativeFrom,\n to: relativeTo,\n })));\n });\n });\n if (selectionRange === 0) {\n return false;\n }\n // calculate range of matched mark\n const matchedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true;\n }\n return type.name === markRange.mark.type.name;\n })\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0);\n // calculate range of marks that excludes the searched mark\n // for example `code` doesn’t allow any other marks\n const excludedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true;\n }\n return markRange.mark.type !== type && markRange.mark.type.excludes(type);\n })\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0);\n // we only include the result of `excludedRange`\n // if there is a match at all\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange;\n return range >= selectionRange;\n}\n\nfunction isActive(state, name, attributes = {}) {\n if (!name) {\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes);\n }\n const schemaType = getSchemaTypeNameByName(name, state.schema);\n if (schemaType === 'node') {\n return isNodeActive(state, name, attributes);\n }\n if (schemaType === 'mark') {\n return isMarkActive(state, name, attributes);\n }\n return false;\n}\n\nconst isAtEndOfNode = (state, nodeType) => {\n const { $from, $to, $anchor } = state.selection;\n if (nodeType) {\n const parentNode = findParentNode(node => node.type.name === nodeType)(state.selection);\n if (!parentNode) {\n return false;\n }\n const $parentPos = state.doc.resolve(parentNode.pos + 1);\n if ($anchor.pos + 1 === $parentPos.end()) {\n return true;\n }\n return false;\n }\n if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {\n return false;\n }\n return true;\n};\n\nconst isAtStartOfNode = (state) => {\n const { $from, $to } = state.selection;\n if ($from.parentOffset > 0 || $from.pos !== $to.pos) {\n return false;\n }\n return true;\n};\n\nfunction isList(name, extensions) {\n const { nodeExtensions } = splitExtensions(extensions);\n const extension = nodeExtensions.find(item => item.name === name);\n if (!extension) {\n return false;\n }\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n };\n const group = callOrReturn(getExtensionField(extension, 'group', context));\n if (typeof group !== 'string') {\n return false;\n }\n return group.split(' ').includes('list');\n}\n\n/**\n * Returns true if the given prosemirror node is empty.\n */\nfunction isNodeEmpty(node, { checkChildren = true, ignoreWhitespace = false, } = {}) {\n var _a;\n if (ignoreWhitespace) {\n if (node.type.name === 'hardBreak') {\n // Hard breaks are considered empty\n return true;\n }\n if (node.isText) {\n return /^\\s*$/m.test((_a = node.text) !== null && _a !== void 0 ? _a : '');\n }\n }\n if (node.isText) {\n return !node.text;\n }\n if (node.isAtom || node.isLeaf) {\n return false;\n }\n if (node.content.childCount === 0) {\n return true;\n }\n if (checkChildren) {\n let isContentEmpty = true;\n node.content.forEach(childNode => {\n if (isContentEmpty === false) {\n // Exit early for perf\n return;\n }\n if (!isNodeEmpty(childNode, { ignoreWhitespace, checkChildren })) {\n isContentEmpty = false;\n }\n });\n return isContentEmpty;\n }\n return false;\n}\n\nfunction isNodeSelection(value) {\n return value instanceof NodeSelection;\n}\n\nfunction posToDOMRect(view, from, to) {\n const minPos = 0;\n const maxPos = view.state.doc.content.size;\n const resolvedFrom = minMax(from, minPos, maxPos);\n const resolvedEnd = minMax(to, minPos, maxPos);\n const start = view.coordsAtPos(resolvedFrom);\n const end = view.coordsAtPos(resolvedEnd, -1);\n const top = Math.min(start.top, end.top);\n const bottom = Math.max(start.bottom, end.bottom);\n const left = Math.min(start.left, end.left);\n const right = Math.max(start.right, end.right);\n const width = right - left;\n const height = bottom - top;\n const x = left;\n const y = top;\n const data = {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x,\n y,\n };\n return {\n ...data,\n toJSON: () => data,\n };\n}\n\nfunction canSetMark(state, tr, newMarkType) {\n var _a;\n const { selection } = tr;\n let cursor = null;\n if (isTextSelection(selection)) {\n cursor = selection.$cursor;\n }\n if (cursor) {\n const currentMarks = (_a = state.storedMarks) !== null && _a !== void 0 ? _a : cursor.marks();\n // There can be no current marks that exclude the new mark\n return (!!newMarkType.isInSet(currentMarks)\n || !currentMarks.some(mark => mark.type.excludes(newMarkType)));\n }\n const { ranges } = selection;\n return ranges.some(({ $from, $to }) => {\n let someNodeSupportsMark = $from.depth === 0\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\n : false;\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\n // If we already found a mark that we can enable, return false to bypass the remaining search\n if (someNodeSupportsMark) {\n return false;\n }\n if (node.isInline) {\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType);\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType));\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType;\n }\n return !someNodeSupportsMark;\n });\n return someNodeSupportsMark;\n });\n}\nconst setMark = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const { selection } = tr;\n const { empty, ranges } = selection;\n const type = getMarkType(typeOrName, state.schema);\n if (dispatch) {\n if (empty) {\n const oldAttributes = getMarkAttributes(state, type);\n tr.addStoredMark(type.create({\n ...oldAttributes,\n ...attributes,\n }));\n }\n else {\n ranges.forEach(range => {\n const from = range.$from.pos;\n const to = range.$to.pos;\n state.doc.nodesBetween(from, to, (node, pos) => {\n const trimmedFrom = Math.max(pos, from);\n const trimmedTo = Math.min(pos + node.nodeSize, to);\n const someHasMark = node.marks.find(mark => mark.type === type);\n // if there is already a mark of this type\n // we know that we have to merge its attributes\n // otherwise we add a fresh new mark\n if (someHasMark) {\n node.marks.forEach(mark => {\n if (type === mark.type) {\n tr.addMark(trimmedFrom, trimmedTo, type.create({\n ...mark.attrs,\n ...attributes,\n }));\n }\n });\n }\n else {\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes));\n }\n });\n });\n }\n }\n return canSetMark(state, tr, type);\n};\n\nconst setMeta = (key, value) => ({ tr }) => {\n tr.setMeta(key, value);\n return true;\n};\n\nconst setNode = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\n const type = getNodeType(typeOrName, state.schema);\n // TODO: use a fallback like insertContent?\n if (!type.isTextblock) {\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.');\n return false;\n }\n return (chain()\n // try to convert node to default node if needed\n .command(({ commands }) => {\n const canSetBlock = setBlockType(type, attributes)(state);\n if (canSetBlock) {\n return true;\n }\n return commands.clearNodes();\n })\n .command(({ state: updatedState }) => {\n return setBlockType(type, attributes)(updatedState, dispatch);\n })\n .run());\n};\n\nconst setNodeSelection = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr;\n const from = minMax(position, 0, doc.content.size);\n const selection = NodeSelection.create(doc, from);\n tr.setSelection(selection);\n }\n return true;\n};\n\nconst setTextSelection = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr;\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position;\n const minPos = TextSelection.atStart(doc).from;\n const maxPos = TextSelection.atEnd(doc).to;\n const resolvedFrom = minMax(from, minPos, maxPos);\n const resolvedEnd = minMax(to, minPos, maxPos);\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd);\n tr.setSelection(selection);\n }\n return true;\n};\n\nconst sinkListItem = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema);\n return sinkListItem$1(type)(state, dispatch);\n};\n\nfunction ensureMarks(state, splittableMarks) {\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks === null || splittableMarks === void 0 ? void 0 : splittableMarks.includes(mark.type.name));\n state.tr.ensureMarks(filteredMarks);\n }\n}\nconst splitBlock = ({ keepMarks = true } = {}) => ({ tr, state, dispatch, editor, }) => {\n const { selection, doc } = tr;\n const { $from, $to } = selection;\n const extensionAttributes = editor.extensionManager.attributes;\n const newAttributes = getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs);\n if (selection instanceof NodeSelection && selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\n return false;\n }\n if (dispatch) {\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks);\n }\n tr.split($from.pos).scrollIntoView();\n }\n return true;\n }\n if (!$from.parent.isBlock) {\n return false;\n }\n const atEnd = $to.parentOffset === $to.parent.content.size;\n const deflt = $from.depth === 0\n ? undefined\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)));\n let types = atEnd && deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined;\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types);\n if (!types\n && !can\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)) {\n can = true;\n types = deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined;\n }\n if (dispatch) {\n if (can) {\n if (selection instanceof TextSelection) {\n tr.deleteSelection();\n }\n tr.split(tr.mapping.map($from.pos), 1, types);\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\n const first = tr.mapping.map($from.before());\n const $first = tr.doc.resolve(first);\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt);\n }\n }\n }\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks);\n }\n tr.scrollIntoView();\n }\n return can;\n};\n\nconst splitListItem = (typeOrName, overrideAttrs = {}) => ({ tr, state, dispatch, editor, }) => {\n var _a;\n const type = getNodeType(typeOrName, state.schema);\n const { $from, $to } = state.selection;\n // @ts-ignore\n // eslint-disable-next-line\n const node = state.selection.node;\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\n return false;\n }\n const grandParent = $from.node(-1);\n if (grandParent.type !== type) {\n return false;\n }\n const extensionAttributes = editor.extensionManager.attributes;\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if ($from.depth === 2\n || $from.node(-3).type !== type\n || $from.index(-2) !== $from.node(-2).childCount - 1) {\n return false;\n }\n if (dispatch) {\n let wrap = Fragment.empty;\n // eslint-disable-next-line\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\n wrap = Fragment.from($from.node(d).copy(wrap));\n }\n // eslint-disable-next-line\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;\n // Add a second list item with an empty default start node\n const newNextTypeAttributes = {\n ...getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs),\n ...overrideAttrs,\n };\n const nextType = ((_a = type.contentMatch.defaultType) === null || _a === void 0 ? void 0 : _a.createAndFill(newNextTypeAttributes)) || undefined;\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined));\n const start = $from.before($from.depth - (depthBefore - 1));\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0));\n let sel = -1;\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\n if (sel > -1) {\n return false;\n }\n if (n.isTextblock && n.content.size === 0) {\n sel = pos + 1;\n }\n });\n if (sel > -1) {\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)));\n }\n tr.scrollIntoView();\n }\n return true;\n }\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null;\n const newTypeAttributes = {\n ...getSplittedAttributes(extensionAttributes, grandParent.type.name, grandParent.attrs),\n ...overrideAttrs,\n };\n const newNextTypeAttributes = {\n ...getSplittedAttributes(extensionAttributes, $from.node().type.name, $from.node().attrs),\n ...overrideAttrs,\n };\n tr.delete($from.pos, $to.pos);\n const types = nextType\n ? [\n { type, attrs: newTypeAttributes },\n { type: nextType, attrs: newNextTypeAttributes },\n ]\n : [{ type, attrs: newTypeAttributes }];\n if (!canSplit(tr.doc, $from.pos, 2)) {\n return false;\n }\n if (dispatch) {\n const { selection, storedMarks } = state;\n const { splittableMarks } = editor.extensionManager;\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks());\n tr.split($from.pos, 2, types).scrollIntoView();\n if (!marks || !dispatch) {\n return true;\n }\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name));\n tr.ensureMarks(filteredMarks);\n }\n return true;\n};\n\nconst joinListBackwards = (tr, listType) => {\n const list = findParentNode(node => node.type === listType)(tr.selection);\n if (!list) {\n return true;\n }\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth);\n if (before === undefined) {\n return true;\n }\n const nodeBefore = tr.doc.nodeAt(before);\n const canJoinBackwards = list.node.type === (nodeBefore === null || nodeBefore === void 0 ? void 0 : nodeBefore.type) && canJoin(tr.doc, list.pos);\n if (!canJoinBackwards) {\n return true;\n }\n tr.join(list.pos);\n return true;\n};\nconst joinListForwards = (tr, listType) => {\n const list = findParentNode(node => node.type === listType)(tr.selection);\n if (!list) {\n return true;\n }\n const after = tr.doc.resolve(list.start).after(list.depth);\n if (after === undefined) {\n return true;\n }\n const nodeAfter = tr.doc.nodeAt(after);\n const canJoinForwards = list.node.type === (nodeAfter === null || nodeAfter === void 0 ? void 0 : nodeAfter.type) && canJoin(tr.doc, after);\n if (!canJoinForwards) {\n return true;\n }\n tr.join(after);\n return true;\n};\nconst toggleList = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({ editor, tr, state, dispatch, chain, commands, can, }) => {\n const { extensions, splittableMarks } = editor.extensionManager;\n const listType = getNodeType(listTypeOrName, state.schema);\n const itemType = getNodeType(itemTypeOrName, state.schema);\n const { selection, storedMarks } = state;\n const { $from, $to } = selection;\n const range = $from.blockRange($to);\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks());\n if (!range) {\n return false;\n }\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection);\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\n // remove list\n if (parentList.node.type === listType) {\n return commands.liftListItem(itemType);\n }\n // change list type\n if (isList(parentList.node.type.name, extensions)\n && listType.validContent(parentList.node.content)\n && dispatch) {\n return chain()\n .command(() => {\n tr.setNodeMarkup(parentList.pos, listType);\n return true;\n })\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run();\n }\n }\n if (!keepMarks || !marks || !dispatch) {\n return chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes);\n if (canWrapInList) {\n return true;\n }\n return commands.clearNodes();\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run();\n }\n return (chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes);\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name));\n tr.ensureMarks(filteredMarks);\n if (canWrapInList) {\n return true;\n }\n return commands.clearNodes();\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run());\n};\n\nconst toggleMark = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\n const { extendEmptyMarkRange = false } = options;\n const type = getMarkType(typeOrName, state.schema);\n const isActive = isMarkActive(state, type, attributes);\n if (isActive) {\n return commands.unsetMark(type, { extendEmptyMarkRange });\n }\n return commands.setMark(type, attributes);\n};\n\nconst toggleNode = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema);\n const toggleType = getNodeType(toggleTypeOrName, state.schema);\n const isActive = isNodeActive(state, type, attributes);\n let attributesToCopy;\n if (state.selection.$anchor.sameParent(state.selection.$head)) {\n // only copy attributes if the selection is pointing to a node of the same type\n attributesToCopy = state.selection.$anchor.parent.attrs;\n }\n if (isActive) {\n return commands.setNode(toggleType, attributesToCopy);\n }\n // If the node is not active, we want to set the new node type with the given attributes\n // Copying over the attributes from the current node if the selection is pointing to a node of the same type\n return commands.setNode(type, { ...attributesToCopy, ...attributes });\n};\n\nconst toggleWrap = (typeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema);\n const isActive = isNodeActive(state, type, attributes);\n if (isActive) {\n return commands.lift(type);\n }\n return commands.wrapIn(type, attributes);\n};\n\nconst undoInputRule = () => ({ state, dispatch }) => {\n const plugins = state.plugins;\n for (let i = 0; i < plugins.length; i += 1) {\n const plugin = plugins[i];\n let undoable;\n // @ts-ignore\n // eslint-disable-next-line\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n const tr = state.tr;\n const toUndo = undoable.transform;\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]));\n }\n if (undoable.text) {\n const marks = tr.doc.resolve(undoable.from).marks();\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks));\n }\n else {\n tr.delete(undoable.from, undoable.to);\n }\n }\n return true;\n }\n }\n return false;\n};\n\nconst unsetAllMarks = () => ({ tr, dispatch }) => {\n const { selection } = tr;\n const { empty, ranges } = selection;\n if (empty) {\n return true;\n }\n if (dispatch) {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos);\n });\n }\n return true;\n};\n\nconst unsetMark = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\n var _a;\n const { extendEmptyMarkRange = false } = options;\n const { selection } = tr;\n const type = getMarkType(typeOrName, state.schema);\n const { $from, empty, ranges } = selection;\n if (!dispatch) {\n return true;\n }\n if (empty && extendEmptyMarkRange) {\n let { from, to } = selection;\n const attrs = (_a = $from.marks().find(mark => mark.type === type)) === null || _a === void 0 ? void 0 : _a.attrs;\n const range = getMarkRange($from, type, attrs);\n if (range) {\n from = range.from;\n to = range.to;\n }\n tr.removeMark(from, to, type);\n }\n else {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos, type);\n });\n }\n tr.removeStoredMark(type);\n return true;\n};\n\nconst updateAttributes = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n let nodeType = null;\n let markType = null;\n const schemaType = getSchemaTypeNameByName(typeof typeOrName === 'string' ? typeOrName : typeOrName.name, state.schema);\n if (!schemaType) {\n return false;\n }\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName, state.schema);\n }\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName, state.schema);\n }\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n const from = range.$from.pos;\n const to = range.$to.pos;\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attributes,\n });\n }\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n const trimmedFrom = Math.max(pos, from);\n const trimmedTo = Math.min(pos + node.nodeSize, to);\n tr.addMark(trimmedFrom, trimmedTo, markType.create({\n ...mark.attrs,\n ...attributes,\n }));\n }\n });\n }\n });\n });\n }\n return true;\n};\n\nconst wrapIn = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema);\n return wrapIn$1(type, attributes)(state, dispatch);\n};\n\nconst wrapInList = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema);\n return wrapInList$1(type, attributes)(state, dispatch);\n};\n\nvar commands = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blur: blur,\n clearContent: clearContent,\n clearNodes: clearNodes,\n command: command,\n createParagraphNear: createParagraphNear,\n cut: cut,\n deleteCurrentNode: deleteCurrentNode,\n deleteNode: deleteNode,\n deleteRange: deleteRange,\n deleteSelection: deleteSelection,\n enter: enter,\n exitCode: exitCode,\n extendMarkRange: extendMarkRange,\n first: first,\n focus: focus,\n forEach: forEach,\n insertContent: insertContent,\n insertContentAt: insertContentAt,\n joinBackward: joinBackward,\n joinDown: joinDown,\n joinForward: joinForward,\n joinItemBackward: joinItemBackward,\n joinItemForward: joinItemForward,\n joinTextblockBackward: joinTextblockBackward,\n joinTextblockForward: joinTextblockForward,\n joinUp: joinUp,\n keyboardShortcut: keyboardShortcut,\n lift: lift,\n liftEmptyBlock: liftEmptyBlock,\n liftListItem: liftListItem,\n newlineInCode: newlineInCode,\n resetAttributes: resetAttributes,\n scrollIntoView: scrollIntoView,\n selectAll: selectAll,\n selectNodeBackward: selectNodeBackward,\n selectNodeForward: selectNodeForward,\n selectParentNode: selectParentNode,\n selectTextblockEnd: selectTextblockEnd,\n selectTextblockStart: selectTextblockStart,\n setContent: setContent,\n setMark: setMark,\n setMeta: setMeta,\n setNode: setNode,\n setNodeSelection: setNodeSelection,\n setTextSelection: setTextSelection,\n sinkListItem: sinkListItem,\n splitBlock: splitBlock,\n splitListItem: splitListItem,\n toggleList: toggleList,\n toggleMark: toggleMark,\n toggleNode: toggleNode,\n toggleWrap: toggleWrap,\n undoInputRule: undoInputRule,\n unsetAllMarks: unsetAllMarks,\n unsetMark: unsetMark,\n updateAttributes: updateAttributes,\n wrapIn: wrapIn,\n wrapInList: wrapInList\n});\n\nconst Commands = Extension.create({\n name: 'commands',\n addCommands() {\n return {\n ...commands,\n };\n },\n});\n\nconst Drop = Extension.create({\n name: 'drop',\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tiptapDrop'),\n props: {\n handleDrop: (_, e, slice, moved) => {\n this.editor.emit('drop', {\n editor: this.editor,\n event: e,\n slice,\n moved,\n });\n },\n },\n }),\n ];\n },\n});\n\nconst Editable = Extension.create({\n name: 'editable',\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('editable'),\n props: {\n editable: () => this.editor.options.editable,\n },\n }),\n ];\n },\n});\n\nconst FocusEvents = Extension.create({\n name: 'focusEvents',\n addProseMirrorPlugins() {\n const { editor } = this;\n return [\n new Plugin({\n key: new PluginKey('focusEvents'),\n props: {\n handleDOMEvents: {\n focus: (view, event) => {\n editor.isFocused = true;\n const transaction = editor.state.tr\n .setMeta('focus', { event })\n .setMeta('addToHistory', false);\n view.dispatch(transaction);\n return false;\n },\n blur: (view, event) => {\n editor.isFocused = false;\n const transaction = editor.state.tr\n .setMeta('blur', { event })\n .setMeta('addToHistory', false);\n view.dispatch(transaction);\n return false;\n },\n },\n },\n }),\n ];\n },\n});\n\nconst Keymap = Extension.create({\n name: 'keymap',\n addKeyboardShortcuts() {\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\n () => commands.undoInputRule(),\n // maybe convert first text block node to default node\n () => commands.command(({ tr }) => {\n const { selection, doc } = tr;\n const { empty, $anchor } = selection;\n const { pos, parent } = $anchor;\n const $parentPos = $anchor.parent.isTextblock && pos > 0 ? tr.doc.resolve(pos - 1) : $anchor;\n const parentIsIsolating = $parentPos.parent.type.spec.isolating;\n const parentPos = $anchor.pos - $anchor.parentOffset;\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\n ? parentPos === $anchor.pos\n : Selection.atStart(doc).from === pos;\n if (!empty\n || !parent.type.isTextblock\n || parent.textContent.length\n || !isAtStart\n || (isAtStart && $anchor.parent.type.name === 'paragraph') // prevent clearNodes when no nodes to clear, otherwise history stack is appended\n ) {\n return false;\n }\n return commands.clearNodes();\n }),\n () => commands.deleteSelection(),\n () => commands.joinBackward(),\n () => commands.selectNodeBackward(),\n ]);\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\n () => commands.deleteSelection(),\n () => commands.deleteCurrentNode(),\n () => commands.joinForward(),\n () => commands.selectNodeForward(),\n ]);\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\n () => commands.newlineInCode(),\n () => commands.createParagraphNear(),\n () => commands.liftEmptyBlock(),\n () => commands.splitBlock(),\n ]);\n const baseKeymap = {\n Enter: handleEnter,\n 'Mod-Enter': () => this.editor.commands.exitCode(),\n Backspace: handleBackspace,\n 'Mod-Backspace': handleBackspace,\n 'Shift-Backspace': handleBackspace,\n Delete: handleDelete,\n 'Mod-Delete': handleDelete,\n 'Mod-a': () => this.editor.commands.selectAll(),\n };\n const pcKeymap = {\n ...baseKeymap,\n };\n const macKeymap = {\n ...baseKeymap,\n 'Ctrl-h': handleBackspace,\n 'Alt-Backspace': handleBackspace,\n 'Ctrl-d': handleDelete,\n 'Ctrl-Alt-Backspace': handleDelete,\n 'Alt-Delete': handleDelete,\n 'Alt-d': handleDelete,\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\n };\n if (isiOS() || isMacOS()) {\n return macKeymap;\n }\n return pcKeymap;\n },\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new Plugin({\n key: new PluginKey('clearDocument'),\n appendTransaction: (transactions, oldState, newState) => {\n const docChanges = transactions.some(transaction => transaction.docChanged)\n && !oldState.doc.eq(newState.doc);\n const ignoreTr = transactions.some(transaction => transaction.getMeta('preventClearDocument'));\n if (!docChanges || ignoreTr) {\n return;\n }\n const { empty, from, to } = oldState.selection;\n const allFrom = Selection.atStart(oldState.doc).from;\n const allEnd = Selection.atEnd(oldState.doc).to;\n const allWasSelected = from === allFrom && to === allEnd;\n if (empty || !allWasSelected) {\n return;\n }\n const isEmpty = isNodeEmpty(newState.doc);\n if (!isEmpty) {\n return;\n }\n const tr = newState.tr;\n const state = createChainableState({\n state: newState,\n transaction: tr,\n });\n const { commands } = new CommandManager({\n editor: this.editor,\n state,\n });\n commands.clearNodes();\n if (!tr.steps.length) {\n return;\n }\n return tr;\n },\n }),\n ];\n },\n});\n\nconst Paste = Extension.create({\n name: 'paste',\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tiptapPaste'),\n props: {\n handlePaste: (_view, e, slice) => {\n this.editor.emit('paste', {\n editor: this.editor,\n event: e,\n slice,\n });\n },\n },\n }),\n ];\n },\n});\n\nconst Tabindex = Extension.create({\n name: 'tabindex',\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tabindex'),\n props: {\n attributes: () => (this.editor.isEditable ? { tabindex: '0' } : {}),\n },\n }),\n ];\n },\n});\n\nvar index = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ClipboardTextSerializer: ClipboardTextSerializer,\n Commands: Commands,\n Drop: Drop,\n Editable: Editable,\n FocusEvents: FocusEvents,\n Keymap: Keymap,\n Paste: Paste,\n Tabindex: Tabindex\n});\n\nclass NodePos {\n get name() {\n return this.node.type.name;\n }\n constructor(pos, editor, isBlock = false, node = null) {\n this.currentNode = null;\n this.actualDepth = null;\n this.isBlock = isBlock;\n this.resolvedPos = pos;\n this.editor = editor;\n this.currentNode = node;\n }\n get node() {\n return this.currentNode || this.resolvedPos.node();\n }\n get element() {\n return this.editor.view.domAtPos(this.pos).node;\n }\n get depth() {\n var _a;\n return (_a = this.actualDepth) !== null && _a !== void 0 ? _a : this.resolvedPos.depth;\n }\n get pos() {\n return this.resolvedPos.pos;\n }\n get content() {\n return this.node.content;\n }\n set content(content) {\n let from = this.from;\n let to = this.to;\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);\n return;\n }\n from = this.from + 1;\n to = this.to - 1;\n }\n this.editor.commands.insertContentAt({ from, to }, content);\n }\n get attributes() {\n return this.node.attrs;\n }\n get textContent() {\n return this.node.textContent;\n }\n get size() {\n return this.node.nodeSize;\n }\n get from() {\n if (this.isBlock) {\n return this.pos;\n }\n return this.resolvedPos.start(this.resolvedPos.depth);\n }\n get range() {\n return {\n from: this.from,\n to: this.to,\n };\n }\n get to() {\n if (this.isBlock) {\n return this.pos + this.size;\n }\n return this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1);\n }\n get parent() {\n if (this.depth === 0) {\n return null;\n }\n const parentPos = this.resolvedPos.start(this.resolvedPos.depth - 1);\n const $pos = this.resolvedPos.doc.resolve(parentPos);\n return new NodePos($pos, this.editor);\n }\n get before() {\n let $pos = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2));\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.from - 3);\n }\n return new NodePos($pos, this.editor);\n }\n get after() {\n let $pos = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1));\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.to + 3);\n }\n return new NodePos($pos, this.editor);\n }\n get children() {\n const children = [];\n this.node.content.forEach((node, offset) => {\n const isBlock = node.isBlock && !node.isTextblock;\n const targetPos = this.pos + offset + 1;\n const $pos = this.resolvedPos.doc.resolve(targetPos);\n if (!isBlock && $pos.depth <= this.depth) {\n return;\n }\n const childNodePos = new NodePos($pos, this.editor, isBlock, isBlock ? node : null);\n if (isBlock) {\n childNodePos.actualDepth = this.depth + 1;\n }\n children.push(new NodePos($pos, this.editor, isBlock, isBlock ? node : null));\n });\n return children;\n }\n get firstChild() {\n return this.children[0] || null;\n }\n get lastChild() {\n const children = this.children;\n return children[children.length - 1] || null;\n }\n closest(selector, attributes = {}) {\n let node = null;\n let currentNode = this.parent;\n while (currentNode && !node) {\n if (currentNode.node.type.name === selector) {\n if (Object.keys(attributes).length > 0) {\n const nodeAttributes = currentNode.node.attrs;\n const attrKeys = Object.keys(attributes);\n for (let index = 0; index < attrKeys.length; index += 1) {\n const key = attrKeys[index];\n if (nodeAttributes[key] !== attributes[key]) {\n break;\n }\n }\n }\n else {\n node = currentNode;\n }\n }\n currentNode = currentNode.parent;\n }\n return node;\n }\n querySelector(selector, attributes = {}) {\n return this.querySelectorAll(selector, attributes, true)[0] || null;\n }\n querySelectorAll(selector, attributes = {}, firstItemOnly = false) {\n let nodes = [];\n if (!this.children || this.children.length === 0) {\n return nodes;\n }\n const attrKeys = Object.keys(attributes);\n /**\n * Finds all children recursively that match the selector and attributes\n * If firstItemOnly is true, it will return the first item found\n */\n this.children.forEach(childPos => {\n // If we already found a node and we only want the first item, we dont need to keep going\n if (firstItemOnly && nodes.length > 0) {\n return;\n }\n if (childPos.node.type.name === selector) {\n const doesAllAttributesMatch = attrKeys.every(key => attributes[key] === childPos.node.attrs[key]);\n if (doesAllAttributesMatch) {\n nodes.push(childPos);\n }\n }\n // If we already found a node and we only want the first item, we can stop here and skip the recursion\n if (firstItemOnly && nodes.length > 0) {\n return;\n }\n nodes = nodes.concat(childPos.querySelectorAll(selector, attributes, firstItemOnly));\n });\n return nodes;\n }\n setAttribute(attributes) {\n const oldSelection = this.editor.state.selection;\n this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from)\n .run();\n }\n}\n\nconst style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`;\n\nfunction createStyleTag(style, nonce, suffix) {\n const tiptapStyleTag = document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`);\n if (tiptapStyleTag !== null) {\n return tiptapStyleTag;\n }\n const styleNode = document.createElement('style');\n if (nonce) {\n styleNode.setAttribute('nonce', nonce);\n }\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '');\n styleNode.innerHTML = style;\n document.getElementsByTagName('head')[0].appendChild(styleNode);\n return styleNode;\n}\n\nclass Editor extends EventEmitter {\n constructor(options = {}) {\n super();\n this.isFocused = false;\n /**\n * The editor is considered initialized after the `create` event has been emitted.\n */\n this.isInitialized = false;\n this.extensionStorage = {};\n this.options = {\n element: document.createElement('div'),\n content: '',\n injectCSS: true,\n injectNonce: undefined,\n extensions: [],\n autofocus: false,\n editable: true,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: true,\n enablePasteRules: true,\n enableCoreExtensions: true,\n enableContentCheck: false,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error }) => { throw error; },\n onPaste: () => null,\n onDrop: () => null,\n };\n this.isCapturingTransaction = false;\n this.capturedTransaction = null;\n this.setOptions(options);\n this.createExtensionManager();\n this.createCommandManager();\n this.createSchema();\n this.on('beforeCreate', this.options.onBeforeCreate);\n this.emit('beforeCreate', { editor: this });\n this.on('contentError', this.options.onContentError);\n this.createView();\n this.injectCSS();\n this.on('create', this.options.onCreate);\n this.on('update', this.options.onUpdate);\n this.on('selectionUpdate', this.options.onSelectionUpdate);\n this.on('transaction', this.options.onTransaction);\n this.on('focus', this.options.onFocus);\n this.on('blur', this.options.onBlur);\n this.on('destroy', this.options.onDestroy);\n this.on('drop', ({ event, slice, moved }) => this.options.onDrop(event, slice, moved));\n this.on('paste', ({ event, slice }) => this.options.onPaste(event, slice));\n window.setTimeout(() => {\n if (this.isDestroyed) {\n return;\n }\n this.commands.focus(this.options.autofocus);\n this.emit('create', { editor: this });\n this.isInitialized = true;\n }, 0);\n }\n /**\n * Returns the editor storage.\n */\n get storage() {\n return this.extensionStorage;\n }\n /**\n * An object of all registered commands.\n */\n get commands() {\n return this.commandManager.commands;\n }\n /**\n * Create a command chain to call multiple commands at once.\n */\n chain() {\n return this.commandManager.chain();\n }\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n can() {\n return this.commandManager.can();\n }\n /**\n * Inject CSS styles.\n */\n injectCSS() {\n if (this.options.injectCSS && document) {\n this.css = createStyleTag(style, this.options.injectNonce);\n }\n }\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n setOptions(options = {}) {\n this.options = {\n ...this.options,\n ...options,\n };\n if (!this.view || !this.state || this.isDestroyed) {\n return;\n }\n if (this.options.editorProps) {\n this.view.setProps(this.options.editorProps);\n }\n this.view.updateState(this.state);\n }\n /**\n * Update editable state of the editor.\n */\n setEditable(editable, emitUpdate = true) {\n this.setOptions({ editable });\n if (emitUpdate) {\n this.emit('update', { editor: this, transaction: this.state.tr });\n }\n }\n /**\n * Returns whether the editor is editable.\n */\n get isEditable() {\n // since plugins are applied after creating the view\n // `editable` is always `true` for one tick.\n // that’s why we also have to check for `options.editable`\n return this.options.editable && this.view && this.view.editable;\n }\n /**\n * Returns the editor state.\n */\n get state() {\n return this.view.state;\n }\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n * @returns The new editor state\n */\n registerPlugin(plugin, handlePlugins) {\n const plugins = isFunction(handlePlugins)\n ? handlePlugins(plugin, [...this.state.plugins])\n : [...this.state.plugins, plugin];\n const state = this.state.reconfigure({ plugins });\n this.view.updateState(state);\n return state;\n }\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKey The plugins name\n * @returns The new editor state or undefined if the editor is destroyed\n */\n unregisterPlugin(nameOrPluginKey) {\n if (this.isDestroyed) {\n return undefined;\n }\n // @ts-ignore\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key;\n const state = this.state.reconfigure({\n // @ts-ignore\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\n });\n this.view.updateState(state);\n return state;\n }\n /**\n * Creates an extension manager.\n */\n createExtensionManager() {\n var _a, _b;\n const coreExtensions = this.options.enableCoreExtensions ? [\n Editable,\n ClipboardTextSerializer.configure({\n blockSeparator: (_b = (_a = this.options.coreExtensionOptions) === null || _a === void 0 ? void 0 : _a.clipboardTextSerializer) === null || _b === void 0 ? void 0 : _b.blockSeparator,\n }),\n Commands,\n FocusEvents,\n Keymap,\n Tabindex,\n Drop,\n Paste,\n ].filter(ext => {\n if (typeof this.options.enableCoreExtensions === 'object') {\n return this.options.enableCoreExtensions[ext.name] !== false;\n }\n return true;\n }) : [];\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\n return ['extension', 'node', 'mark'].includes(extension === null || extension === void 0 ? void 0 : extension.type);\n });\n this.extensionManager = new ExtensionManager(allExtensions, this);\n }\n /**\n * Creates an command manager.\n */\n createCommandManager() {\n this.commandManager = new CommandManager({\n editor: this,\n });\n }\n /**\n * Creates a ProseMirror schema.\n */\n createSchema() {\n this.schema = this.extensionManager.schema;\n }\n /**\n * Creates a ProseMirror view.\n */\n createView() {\n let doc;\n try {\n doc = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });\n }\n catch (e) {\n if (!(e instanceof Error) || !['[tiptap error]: Invalid JSON content', '[tiptap error]: Invalid HTML content'].includes(e.message)) {\n // Not the content error we were expecting\n throw e;\n }\n this.emit('contentError', {\n editor: this,\n error: e,\n disableCollaboration: () => {\n // To avoid syncing back invalid content, reinitialize the extensions without the collaboration extension\n this.options.extensions = this.options.extensions.filter(extension => extension.name !== 'collaboration');\n // Restart the initialization process by recreating the extension manager with the new set of extensions\n this.createExtensionManager();\n },\n });\n // Content is invalid, but attempt to create it anyway, stripping out the invalid parts\n doc = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: false });\n }\n const selection = resolveFocusPosition(doc, this.options.autofocus);\n this.view = new EditorView(this.options.element, {\n ...this.options.editorProps,\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: EditorState.create({\n doc,\n selection: selection || undefined,\n }),\n });\n // `editor.view` is not yet available at this time.\n // Therefore we will add all plugins and node views directly afterwards.\n const newState = this.state.reconfigure({\n plugins: this.extensionManager.plugins,\n });\n this.view.updateState(newState);\n this.createNodeViews();\n this.prependClass();\n // Let’s store the editor instance in the DOM element.\n // So we’ll have access to it for tests.\n // @ts-ignore\n const dom = this.view.dom;\n dom.editor = this;\n }\n /**\n * Creates all node views.\n */\n createNodeViews() {\n if (this.view.isDestroyed) {\n return;\n }\n this.view.setProps({\n nodeViews: this.extensionManager.nodeViews,\n });\n }\n /**\n * Prepend class name to element.\n */\n prependClass() {\n this.view.dom.className = `tiptap ${this.view.dom.className}`;\n }\n captureTransaction(fn) {\n this.isCapturingTransaction = true;\n fn();\n this.isCapturingTransaction = false;\n const tr = this.capturedTransaction;\n this.capturedTransaction = null;\n return tr;\n }\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n dispatchTransaction(transaction) {\n // if the editor / the view of the editor was destroyed\n // the transaction should not be dispatched as there is no view anymore.\n if (this.view.isDestroyed) {\n return;\n }\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = transaction;\n return;\n }\n transaction.steps.forEach(step => { var _a; return (_a = this.capturedTransaction) === null || _a === void 0 ? void 0 : _a.step(step); });\n return;\n }\n const state = this.state.apply(transaction);\n const selectionHasChanged = !this.state.selection.eq(state.selection);\n this.emit('beforeTransaction', {\n editor: this,\n transaction,\n nextState: state,\n });\n this.view.updateState(state);\n this.emit('transaction', {\n editor: this,\n transaction,\n });\n if (selectionHasChanged) {\n this.emit('selectionUpdate', {\n editor: this,\n transaction,\n });\n }\n const focus = transaction.getMeta('focus');\n const blur = transaction.getMeta('blur');\n if (focus) {\n this.emit('focus', {\n editor: this,\n event: focus.event,\n transaction,\n });\n }\n if (blur) {\n this.emit('blur', {\n editor: this,\n event: blur.event,\n transaction,\n });\n }\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\n return;\n }\n this.emit('update', {\n editor: this,\n transaction,\n });\n }\n /**\n * Get attributes of the currently selected node or mark.\n */\n getAttributes(nameOrType) {\n return getAttributes(this.state, nameOrType);\n }\n isActive(nameOrAttributes, attributesOrUndefined) {\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null;\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes;\n return isActive(this.state, name, attributes);\n }\n /**\n * Get the document as JSON.\n */\n getJSON() {\n return this.state.doc.toJSON();\n }\n /**\n * Get the document as HTML.\n */\n getHTML() {\n return getHTMLFromFragment(this.state.doc.content, this.schema);\n }\n /**\n * Get the document as text.\n */\n getText(options) {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {};\n return getText(this.state.doc, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(this.schema),\n ...textSerializers,\n },\n });\n }\n /**\n * Check if there is no content.\n */\n get isEmpty() {\n return isNodeEmpty(this.state.doc);\n }\n /**\n * Get the number of characters for the current document.\n *\n * @deprecated\n */\n getCharacterCount() {\n console.warn('[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.');\n return this.state.doc.content.size - 2;\n }\n /**\n * Destroy the editor.\n */\n destroy() {\n this.emit('destroy');\n if (this.view) {\n // Cleanup our reference to prevent circular references which caused memory leaks\n // @ts-ignore\n const dom = this.view.dom;\n if (dom && dom.editor) {\n delete dom.editor;\n }\n this.view.destroy();\n }\n this.removeAllListeners();\n }\n /**\n * Check if the editor is already destroyed.\n */\n get isDestroyed() {\n var _a;\n // @ts-ignore\n return !((_a = this.view) === null || _a === void 0 ? void 0 : _a.docView);\n }\n $node(selector, attributes) {\n var _a;\n return ((_a = this.$doc) === null || _a === void 0 ? void 0 : _a.querySelector(selector, attributes)) || null;\n }\n $nodes(selector, attributes) {\n var _a;\n return ((_a = this.$doc) === null || _a === void 0 ? void 0 : _a.querySelectorAll(selector, attributes)) || null;\n }\n $pos(pos) {\n const $pos = this.state.doc.resolve(pos);\n return new NodePos($pos, this);\n }\n get $doc() {\n return this.$pos(0);\n }\n}\n\n/**\n * Build an input rule that adds a mark when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nfunction markInputRule(config) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match);\n if (attributes === false || attributes === null) {\n return null;\n }\n const { tr } = state;\n const captureGroup = match[match.length - 1];\n const fullMatch = match[0];\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/);\n const textStart = range.from + fullMatch.indexOf(captureGroup);\n const textEnd = textStart + captureGroup.length;\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded;\n return excluded.find(type => type === config.type && type !== item.mark.type);\n })\n .filter(item => item.to > textStart);\n if (excludedMarks.length) {\n return null;\n }\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to);\n }\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart);\n }\n const markEnd = range.from + startSpaces + captureGroup.length;\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}));\n tr.removeStoredMark(config.type);\n }\n },\n });\n}\n\n/**\n * Build an input rule that adds a node when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nfunction nodeInputRule(config) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {};\n const { tr } = state;\n const start = range.from;\n let end = range.to;\n const newNode = config.type.create(attributes);\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1]);\n let matchStart = start + offset;\n if (matchStart > end) {\n matchStart = end;\n }\n else {\n end = matchStart + match[1].length;\n }\n // insert last typed character\n const lastChar = match[0][match[0].length - 1];\n tr.insertText(lastChar, start + match[0].length - 1);\n // insert node from input rule\n tr.replaceWith(matchStart, end, newNode);\n }\n else if (match[0]) {\n const insertionStart = config.type.isInline ? start : start - 1;\n tr.insert(insertionStart, config.type.create(attributes)).delete(tr.mapping.map(start), tr.mapping.map(end));\n }\n tr.scrollIntoView();\n },\n });\n}\n\n/**\n * Build an input rule that changes the type of a textblock when the\n * matched text is typed into it. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nfunction textblockTypeInputRule(config) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const $start = state.doc.resolve(range.from);\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {};\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\n return null;\n }\n state.tr\n .delete(range.from, range.to)\n .setBlockType(range.from, range.from, config.type, attributes);\n },\n });\n}\n\n/**\n * Build an input rule that replaces text when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nfunction textInputRule(config) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace;\n let start = range.from;\n const end = range.to;\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1]);\n insert += match[0].slice(offset + match[1].length);\n start += offset;\n const cutOff = start - end;\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert;\n start = end;\n }\n }\n state.tr.insertText(insert, start, end);\n },\n });\n}\n\n/**\n * Build an input rule for automatically wrapping a textblock when a\n * given string is typed. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n *\n * `type` is the type of node to wrap in.\n *\n * By default, if there’s a node with the same type above the newly\n * wrapped node, the rule will try to join those\n * two nodes. You can pass a join predicate, which takes a regular\n * expression match and the node before the wrapped node, and can\n * return a boolean to indicate whether a join should happen.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nfunction wrappingInputRule(config) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match, chain, }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {};\n const tr = state.tr.delete(range.from, range.to);\n const $start = tr.doc.resolve(range.from);\n const blockRange = $start.blockRange();\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes);\n if (!wrapping) {\n return null;\n }\n tr.wrap(blockRange, wrapping);\n if (config.keepMarks && config.editor) {\n const { selection, storedMarks } = state;\n const { splittableMarks } = config.editor.extensionManager;\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks());\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name));\n tr.ensureMarks(filteredMarks);\n }\n }\n if (config.keepAttributes) {\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList';\n chain().updateAttributes(nodeType, attributes).run();\n }\n const before = tr.doc.resolve(range.from - 1).nodeBefore;\n if (before\n && before.type === config.type\n && canJoin(tr.doc, range.from - 1)\n && (!config.joinPredicate || config.joinPredicate(match, before))) {\n tr.join(range.from - 1);\n }\n },\n });\n}\n\n/**\n * The Node class is used to create custom node extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nclass Node {\n constructor(config = {}) {\n this.type = 'node';\n this.name = 'node';\n this.parent = null;\n this.child = null;\n this.config = {\n name: this.name,\n defaultOptions: {},\n };\n this.config = {\n ...this.config,\n ...config,\n };\n this.name = this.config.name;\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`);\n }\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions;\n if (this.config.addOptions) {\n this.options = callOrReturn(getExtensionField(this, 'addOptions', {\n name: this.name,\n }));\n }\n this.storage = callOrReturn(getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n })) || {};\n }\n static create(config = {}) {\n return new Node(config);\n }\n configure(options = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options, options);\n },\n });\n // Always preserve the current name\n extension.name = this.name;\n // Set the parent to be our parent\n extension.parent = this.parent;\n return extension;\n }\n extend(extendedConfig = {}) {\n const extension = new Node(extendedConfig);\n extension.parent = this;\n this.child = extension;\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(`[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`);\n }\n extension.options = callOrReturn(getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }));\n extension.storage = callOrReturn(getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }));\n return extension;\n }\n}\n\nfunction isAndroid() {\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent);\n}\n\n/**\n * Node views are used to customize the rendered DOM structure of a node.\n * @see https://tiptap.dev/guide/node-views\n */\nclass NodeView {\n constructor(component, props, options) {\n this.isDragging = false;\n this.component = component;\n this.editor = props.editor;\n this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...options,\n };\n this.extension = props.extension;\n this.node = props.node;\n this.decorations = props.decorations;\n this.innerDecorations = props.innerDecorations;\n this.view = props.view;\n this.HTMLAttributes = props.HTMLAttributes;\n this.getPos = props.getPos;\n this.mount();\n }\n mount() {\n // eslint-disable-next-line\n return;\n }\n get dom() {\n return this.editor.view.dom;\n }\n get contentDOM() {\n return null;\n }\n onDragStart(event) {\n var _a, _b, _c, _d, _e, _f, _g;\n const { view } = this.editor;\n const target = event.target;\n // get the drag handle element\n // `closest` is not available for text nodes so we may have to use its parent\n const dragHandle = target.nodeType === 3\n ? (_a = target.parentElement) === null || _a === void 0 ? void 0 : _a.closest('[data-drag-handle]')\n : target.closest('[data-drag-handle]');\n if (!this.dom || ((_b = this.contentDOM) === null || _b === void 0 ? void 0 : _b.contains(target)) || !dragHandle) {\n return;\n }\n let x = 0;\n let y = 0;\n // calculate offset for drag element if we use a different drag handle element\n if (this.dom !== dragHandle) {\n const domBox = this.dom.getBoundingClientRect();\n const handleBox = dragHandle.getBoundingClientRect();\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\n const offsetX = (_c = event.offsetX) !== null && _c !== void 0 ? _c : (_d = event.nativeEvent) === null || _d === void 0 ? void 0 : _d.offsetX;\n const offsetY = (_e = event.offsetY) !== null && _e !== void 0 ? _e : (_f = event.nativeEvent) === null || _f === void 0 ? void 0 : _f.offsetY;\n x = handleBox.x - domBox.x + offsetX;\n y = handleBox.y - domBox.y + offsetY;\n }\n (_g = event.dataTransfer) === null || _g === void 0 ? void 0 : _g.setDragImage(this.dom, x, y);\n const pos = this.getPos();\n if (typeof pos !== 'number') {\n return;\n }\n // we need to tell ProseMirror that we want to move the whole node\n // so we create a NodeSelection\n const selection = NodeSelection.create(view.state.doc, pos);\n const transaction = view.state.tr.setSelection(selection);\n view.dispatch(transaction);\n }\n stopEvent(event) {\n var _a;\n if (!this.dom) {\n return false;\n }\n if (typeof this.options.stopEvent === 'function') {\n return this.options.stopEvent({ event });\n }\n const target = event.target;\n const isInElement = this.dom.contains(target) && !((_a = this.contentDOM) === null || _a === void 0 ? void 0 : _a.contains(target));\n // any event from child nodes should be handled by ProseMirror\n if (!isInElement) {\n return false;\n }\n const isDragEvent = event.type.startsWith('drag');\n const isDropEvent = event.type === 'drop';\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable;\n // any input event within node views should be ignored by ProseMirror\n if (isInput && !isDropEvent && !isDragEvent) {\n return true;\n }\n const { isEditable } = this.editor;\n const { isDragging } = this;\n const isDraggable = !!this.node.type.spec.draggable;\n const isSelectable = NodeSelection.isSelectable(this.node);\n const isCopyEvent = event.type === 'copy';\n const isPasteEvent = event.type === 'paste';\n const isCutEvent = event.type === 'cut';\n const isClickEvent = event.type === 'mousedown';\n // ProseMirror tries to drag selectable nodes\n // even if `draggable` is set to `false`\n // this fix prevents that\n if (!isDraggable && isSelectable && isDragEvent) {\n event.preventDefault();\n }\n if (isDraggable && isDragEvent && !isDragging) {\n event.preventDefault();\n return false;\n }\n // we have to store that dragging started\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\n const dragHandle = target.closest('[data-drag-handle]');\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle));\n if (isValidDragHandle) {\n this.isDragging = true;\n document.addEventListener('dragend', () => {\n this.isDragging = false;\n }, { once: true });\n document.addEventListener('drop', () => {\n this.isDragging = false;\n }, { once: true });\n document.addEventListener('mouseup', () => {\n this.isDragging = false;\n }, { once: true });\n }\n }\n // these events are handled by prosemirror\n if (isDragging\n || isDropEvent\n || isCopyEvent\n || isPasteEvent\n || isCutEvent\n || (isClickEvent && isSelectable)) {\n return false;\n }\n return true;\n }\n /**\n * Called when a DOM [mutation](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) or a selection change happens within the view.\n * @return `false` if the editor should re-read the selection or re-parse the range around the mutation\n * @return `true` if it can safely be ignored.\n */\n ignoreMutation(mutation) {\n if (!this.dom || !this.contentDOM) {\n return true;\n }\n if (typeof this.options.ignoreMutation === 'function') {\n return this.options.ignoreMutation({ mutation });\n }\n // a leaf/atom node is like a black box for ProseMirror\n // and should be fully handled by the node view\n if (this.node.isLeaf || this.node.isAtom) {\n return true;\n }\n // ProseMirror should handle any selections\n if (mutation.type === 'selection') {\n return false;\n }\n // try to prevent a bug on iOS and Android that will break node views on enter\n // this is because ProseMirror can’t preventDispatch on enter\n // this will lead to a re-render of the node view on enter\n // see: https://github.com/ueberdosis/tiptap/issues/1214\n // see: https://github.com/ueberdosis/tiptap/issues/2534\n if (this.dom.contains(mutation.target)\n && mutation.type === 'childList'\n && (isiOS() || isAndroid())\n && this.editor.isFocused) {\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ];\n // we’ll check if every changed node is contentEditable\n // to make sure it’s probably mutated by ProseMirror\n if (changedNodes.every(node => node.isContentEditable)) {\n return false;\n }\n }\n // we will allow mutation contentDOM with attributes\n // so we can for example adding classes within our node view\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\n return true;\n }\n // ProseMirror should handle any changes within contentDOM\n if (this.contentDOM.contains(mutation.target)) {\n return false;\n }\n return true;\n }\n /**\n * Update the attributes of the prosemirror node.\n */\n updateAttributes(attributes) {\n this.editor.commands.command(({ tr }) => {\n const pos = this.getPos();\n if (typeof pos !== 'number') {\n return false;\n }\n tr.setNodeMarkup(pos, undefined, {\n ...this.node.attrs,\n ...attributes,\n });\n return true;\n });\n }\n /**\n * Delete the node.\n */\n deleteNode() {\n const from = this.getPos();\n if (typeof from !== 'number') {\n return;\n }\n const to = from + this.node.nodeSize;\n this.editor.commands.deleteRange({ from, to });\n }\n}\n\n/**\n * Build an paste rule that adds a mark when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nfunction markPasteRule(config) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match, pasteEvent, }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent);\n if (attributes === false || attributes === null) {\n return null;\n }\n const { tr } = state;\n const captureGroup = match[match.length - 1];\n const fullMatch = match[0];\n let markEnd = range.to;\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/);\n const textStart = range.from + fullMatch.indexOf(captureGroup);\n const textEnd = textStart + captureGroup.length;\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded;\n return excluded.find(type => type === config.type && type !== item.mark.type);\n })\n .filter(item => item.to > textStart);\n if (excludedMarks.length) {\n return null;\n }\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to);\n }\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart);\n }\n markEnd = range.from + startSpaces + captureGroup.length;\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}));\n tr.removeStoredMark(config.type);\n }\n },\n });\n}\n\n// source: https://stackoverflow.com/a/6969486\nfunction escapeForRegEx(string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n\n/**\n * Build an paste rule that adds a node when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nfunction nodePasteRule(config) {\n return new PasteRule({\n find: config.find,\n handler({ match, chain, range, pasteEvent, }) {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent);\n const content = callOrReturn(config.getContent, undefined, attributes);\n if (attributes === false || attributes === null) {\n return null;\n }\n const node = { type: config.type.name, attrs: attributes };\n if (content) {\n node.content = content;\n }\n if (match.input) {\n chain().deleteRange(range).insertContentAt(range.from, node);\n }\n },\n });\n}\n\n/**\n * Build an paste rule that replaces text when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nfunction textPasteRule(config) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace;\n let start = range.from;\n const end = range.to;\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1]);\n insert += match[0].slice(offset + match[1].length);\n start += offset;\n const cutOff = start - end;\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert;\n start = end;\n }\n }\n state.tr.insertText(insert, start, end);\n },\n });\n}\n\nclass Tracker {\n constructor(transaction) {\n this.transaction = transaction;\n this.currentStep = this.transaction.steps.length;\n }\n map(position) {\n let deleted = false;\n const mappedPosition = this.transaction.steps\n .slice(this.currentStep)\n .reduce((newPosition, step) => {\n const mapResult = step.getMap().mapResult(newPosition);\n if (mapResult.deleted) {\n deleted = true;\n }\n return mapResult.pos;\n }, position);\n return {\n position: mappedPosition,\n deleted,\n };\n }\n}\n\nexport { CommandManager, Editor, Extension, InputRule, Mark, Node, NodePos, NodeView, PasteRule, Tracker, callOrReturn, combineTransactionSteps, createChainableState, createDocument, createNodeFromContent, createStyleTag, defaultBlockAt, deleteProps, elementFromString, escapeForRegEx, index as extensions, findChildren, findChildrenInRange, findDuplicates, findParentNode, findParentNodeClosestToPos, fromString, generateHTML, generateJSON, generateText, getAttributes, getAttributesFromExtensions, getChangedRanges, getDebugJSON, getExtensionField, getHTMLFromFragment, getMarkAttributes, getMarkRange, getMarkType, getMarksBetween, getNodeAtPosition, getNodeAttributes, getNodeType, getRenderedAttributes, getSchema, getSchemaByResolvedExtensions, getSchemaTypeByName, getSchemaTypeNameByName, getSplittedAttributes, getText, getTextBetween, getTextContentFromNodes, getTextSerializersFromSchema, injectExtensionAttributesToParseRule, inputRulesPlugin, isActive, isAtEndOfNode, isAtStartOfNode, isEmptyObject, isExtensionRulesEnabled, isFunction, isList, isMacOS, isMarkActive, isNodeActive, isNodeEmpty, isNodeSelection, isNumber, isPlainObject, isRegExp, isString, isTextSelection, isiOS, markInputRule, markPasteRule, mergeAttributes, mergeDeep, minMax, nodeInputRule, nodePasteRule, objectIncludes, pasteRulesPlugin, posToDOMRect, removeDuplicates, resolveFocusPosition, selectionToInsertionEnd, splitExtensions, textInputRule, textPasteRule, textblockTypeInputRule, wrappingInputRule };\n//# sourceMappingURL=index.js.map\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/**!\n* tippy.js v6.3.7\n* (c) 2017-2021 atomiks\n* MIT License\n*/\nimport { createPopper, applyStyles } from '@popperjs/core';\n\nvar ROUND_ARROW = '';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n return document.body;\n};\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\nfunction debounce(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\nfunction isElement(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\nfunction getArrayOfElements(value) {\n if (isElement(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\nfunction getOwnerDocument(elementOrElements) {\n var _element$ownerDocumen;\n\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0]; // Elements created via a